1、通过把SQL命令插入到Web表单提交或者输入域名或者页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
2、利用应用程序漏洞
3、恶意SQL命令注入到后台数据库引擎,并执行
4、注入流程:检测是否存在漏洞? -->? 探测后台数据库类型、属性? -->? SQL注入
a、程序命令和用户数据(即用户输入)之间没有做到泾渭分明。
b、这使得攻击者有机会将程序命令当作用户输入的数据提交给web程序,以发号施令,为所欲为
c、接受相关参数未经处理直接带入数据库查询操作
d、以获得数据库的管理权限,然后提权至操作系统管理用户权限
e、最终控制服务器操作系统
f、万能密码:输入abmin' or 1=1 --发现输入任何密码都可以登入成功
1、确定web应用程序所使用的技术
? ? ? ???注入攻击对程序设计语言或者硬件关系密切
2、查找注入点
Web应用的用户输入方式比较多
? ? ? ? ?明显的输入: HTML表单
? ? ? ? ?隐藏的输入: HTTP头部、cookics、甚至对用户不可见的后端AJax请求来跟Web应用进行交? ? ?? ?? ? ? ? ? ? ? ? ? ? ? ? ?互。一般来说,所有HTTP的GET和POST都应当作用户输入为了找出一个Web? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?应用所有可能的用户输入,我们可以求助于Web 代理如Bp等。
3、查找可以用于注入的用户输入
? ? ? ? ?输入方式进行筛选,找出其中可以注入命令的那些输入方式
方法:1、手工注入---->找到注入点,手工改造输入
? ? ? ? ? ?2、利用工具注入----->流行注入工具sqlmap
4、查找注入点
http:// www.*****.com/ ***.asp?id=x(ASP注入)
http:// www.*****.com/ ***.php?id=x(php注入)
http:// www.*****.com/ ***.jsp?id=x(jsp注入)
http:// www.*****.com/ ***.aspx?id=x(aspx注入)
http:// www.*****.com/ index.asp?id=8&page=99(注:注入的时候确定是id参数还是page参数,工具默认只对后面page参数注入,所以要对工具进行配置或者手工调换)。
http:// www.*****.com/ index/new/id/8伪静态
http:// www.*****.com/ inedx/new/php-8.html伪静态
1、数据库层面:a、非法读取、篡改、添加、删除数据库中数据
? ? ? ? ? ? ? ? ? ? ? ? ? ?b、盗取用户的各类敏感信息,获取利益
? ? ? ? ? ? ? ? ? ? ? ? ? ?c、通过修改数据库修改网页上的内容
? ? ? ? ? ? ? ? ? ? ? ? ? ?d、私自添加或者删除账号
2、操作系统层面:a、网页篡改
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?b、网络挂马
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?c、服务器远程控制