ctfshow
1,web517
通过输入两个单引号让查询语句正常,判断是什么注入,使用的是什么字符

然后我们通过order by 判断回显位,进行一个联合查询注入

获取数据库名

ctfshow的sqli-labs和本地搭建最大的不同,就是show的flag不在当前的security库中,而是在另一个库ctfshow中
我们在联合查询时,用的是information_schema,这个库中有tables、columns,也有另外一个叫schemata的表,里面存储的就是数据库中所有的库名。

爆出表名

爆出列名

爆出flag字段

2,web58
var_dump() #打印变量相关信息
print_r() #打印多个变量的值,可以打印复杂类型变量的值,如array
file_get_contents()
highlight_file()
show_source() #highlight_file()的别名
readfile()
scandir() #用于打印目录下的文件

试了一下system() 不行

print_r(scandir('.')); #打印当前目录文件名字
show_source('flag.php'); #对文件进行语法高亮显示。

获取当前目录的名字
通过show_source('flag.php');高亮显示flag

3,web65

print_r(scandir(dirname('FILE'))); 扫描一下文件

高亮显示文件

4,web66

使用上一题的 payload 发现文件不在原来的位置了

我们使用print_r(scandir("/"));进行查找
print_r() #打印多个变量的值,可以打印复杂类型变量的值,如array
scandir() #用于打印目录下的文件

找到了

5,web67

使用上一题的 payload

6,web68
访问就是这个

禁用了 highlight_file() ,但传参应该还是c

print_r被禁了,使用 var_dump()

还是在flag.txt

readfile 函数是 PHP 中用于读取文件并将其内容输出到缓冲区的函数。
7,web69

print_r(glob("*")); // 列当前⽬录
print_r(glob("/*")); // 列根⽬录
print_r(scandir("."));
print_r(scandir("/"));
$d=opendir(".");while(false!==($f=readdir($d))){echo"$f\n";}
$d=dir(".");while(false!==($f=$d->read())){echo$f."\n";}
$a=glob("/*");foreach($a as $value){echo $value." ";}
$a=new DirectoryIterator('glob:///*');foreach($a as $f){echo($f->__toString
()." ");}
$d=opendir(".");while(false!==($f=readdir($d))){echo"$f\n";}
opendir("/") 是 PHP 的一个函数,用于打开指定目录
hile(false!==($f=readdir($d))) 是一个 while 循环,用于遍历目录中的所有文件和文件夹。循环的条件是 readdir($d) 的返回值不等于 false。如果不等于 false,说明还有文件或文件夹可以读取,循环继续;如果等于 false,说明目录已经读取完毕,循环结束。

读取文件

8,web70

过滤了 error_reporting() , ini_set() , highlight_file()
读取文件


9,web389
黑盒测试先扫一下目录

访问/debug/,提示权限不足,上一题的debug目录是文件包含

f12,查看了一下cookie,可以看到使用的是jwt加密,有非常明显的两个点,jwt是由三部分组成

解密

sub改为admin,因为采用了HS256加密需要找secret,secret可以爆破就是123456

知道文件路径,直接将flag,写到flag.txt文件


10,web390

访问公园往事的时候出现了一个id=2,有可能存在sql注入

是数字性注入
三列

2,3回显

库名

sql注入,直接通过sqlmap注入,获取 /var/www/html/alsckdfy/check.php


11,web391

sqlmap没有跑出来

搜索也有注入点


成功

12,web392

python sqlmap.py -u https://abeb2542-4977-4b11-899b-1e80197665f8.challenge.ctf.show/search.php?title=1 --file-read /var/www/html/alsckdfy/check.php
又拿sqlmap测了一下,发现不在原来的位置了

通过--os-shell的写入两个php文件,执行命令查找flag
放在根目录flag里面了



13,web393
sqlmap没有跑出来,看了一下wp,发现是通过堆叠注入配合ssrf获取flag的

在主页下面发现可以选择搜索引擎


后台应该是根据这里传入的id值到数据库中查询url,然后访问url,返回访问结果,存在ssrf
先通过sqlmap获取表名和库名,利用堆叠注入插入数据

然后访问link.php?id=10

14,web394

和上一题很像,但根据它的提示flag可能又回去了
试了一下上一题的payload发现不行,应该是过滤了什么

测试了一下是把file过滤了,找一下绕过,发现16进制可以

的确没在根目录下了



15web395
上⼀题payload可以打

