[suctf 2019]EasySQL [SWPUCTF 2021 新生赛]error [强网杯 2019]任意注 ...

打印 上一主题 下一主题

主题 502|帖子 502|积分 1506

[suctf 2019]EasySQL


一个输入框,我会的方式都试过了

这题输入数字会给一个数组就如上

别的进行注入范例判断的时候就是没有回显,白的




但是输入一些关键的sql查询语句的时候就会nonono的
把union,order by ,sleep
等一些列我试的都不行
正常方式已经不行了



直到最后用到的堆叠注入
应为他的输入1会有回显那么对于堆叠注入
因该就会有用

payload:
1;show databases;
如许终于出了


进行下一步
payload:
1;show tables;

哈哈感觉就要行了

下一步
payload
1;show columns from 'Flag';

又错了,麻了

又经过一番都不行

看了一下别人的wp
原来是要猜测别人写的后端代码
下面就是解这一题的方式了
第一步最简朴的
payload
*,1

因为猜测代码如下
select $_POST['query'] || flag from flag
我们输入的代码就是在这了query
那么

输入1的原因
输入*,1,这里会增加一个临时列,他的列名为1,然后那一列的值都为1

1 || flag  这个会构成短路语法 会留下前面谁人1
就会变成如许 
select *,1 from flag

如许就出来了


尚有一种就是堆叠注入了


用的是
1;set sql_mode=PIPES_AS_CONCAT;select 1

讲的是把||设置成了concat函数了就是进行连接

 sql_mode : 它界说了 MySQL 应支持的 SQL 语法,以及应该在数据上实行何种确认查抄,其中的 PIPES_AS_CONCAT 将 || 视为字符串的连接操纵符而非 “或” 运算符
也就是PIPES_AS_CONCAT把||改成字符串了
因为:
pipes_as_concat:一个特定的 SQL 模式选项,它意味着在 SQL 查询中用 | 符号(即管道符号)作为字符勾通接符,从而允许利用管道符号进行字符勾通接。

SET 是一个用来修改系统变量的命令



[SWPUCTF 2021 新生赛]error



这个直接用sqlmap就出了



接下来试试手注

经过尝试之后可以发现这是字符型注入并且是‘’
有3列



是可以的,下面就继承

然后改一下字符起始位置就好了
updatexml
extractvalue
这俩都可以



[强网杯 2019]任意注



经过测试发现单引号被过滤了,而且下面的也都不行


试了一下堆叠注入还是可以的

与1有区别的就是2了
1;show databases;
跟1的结果也是一样的

不过用kali试了一下发现有bool 跟时间盲注这两个


果然sqlmap是没有灵魂的,没有乐成

用order by   试出了有2个

这个是字符型输入 要闭合单引号
1’;show databases;


查找到如下


接下来就差读取flag了


尚有一种就是动态实行预处理
进行16进制编码也是可以绕过select 等字符串的
通过上述也是找到了flag的所在地

如下set @a=0xxxxx; # 要实行语句的16进制
prepare test from @a;
execute test;:

要实行的是select * from `1919810931114514`
进行16进制编码


payload:


1' ; Set @a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare test from @a;execute test;

就出来了



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表