web安全/渗透测试(十一):SQL注入
程序员文章站
2024-03-19 14:02:16
...
一、SQL语句
增删改查
二、SQL注入的危害
1、提供对数据库敏感数据的访问
2、可以读取www文件夹外的本地文件
3、可以用admin登录并进一步对系统进行漏洞发掘
4、可以用来上传文件
三、发现SQL注入
1、使用‘and’,'order by'或“ ' ”在文本框和url注入
其中url形式为:http://baidu.com/page.php?something=something
举例:
某网站的用户账号abc 密码123456
(1)在登录页面输入账号密码,其中密码输入123456' and 1=1#
执行的命令是:
select * from accounts where username = 'abc' and password = '123456' and 1=1#'
如果能登录成功,说明该文本框是可以注入sql语句的。
(2)或:
密码输入123456' and 1=2#
执行的命令是:
select * from accounts where username = 'abc' and password = '123456' and 1=2#'
如果报错,说明该文本框是可以注入sql语句的。因为是正确的账号和正确的密码,这里有个问题,如果是不允许注入sql的话,按理也是登录失败的才对呀。
四、绕过登录限制
1、登录页面,知道账号,不知道密码情况下,
密码输入1111' or 1=1#
执行的命令是:
select * from accounts where username = 'abc' and password = '1111' or 1=1#'
2、登录页面,知道账号,不知道密码情况下,
账号输入admin'#
执行的命令是:
select * from accounts where username = 'admin'# and password = '1111'
五、绕过更高级的登录限制
1、安全等级提高后,依然用前面的方法注入sql,会提示非法输入。
此时判断是在客户端被过滤还是在服务器被过滤的。
如果是客户端过滤的话,可以用Burpsuite绕过。
2、如何判断是在客户端被过滤还是在服务器被过滤?
打开burpsuite后,在登录页面,输入账号和非法密码,如果客户端仍提示非法输入,而Burpsuite未拦截到任何请求,说明是客户端过滤。
3、用Burpsuite绕过客户端过滤
(1)登录页面输入合法账号和密码,用burpsuite拦截
(2)burpsuite拦截后在proxy修改请求,再forward(发送请求)