EASY-PHP01
打开题目链接
Ctrl+u查看源码
提示用get传参
传参以后出现php源码,代码审计后需要用post传参ISCTF,绕过php的双==
得到flag
EASY-PHP02
打开题目链接,看到代码。
通过第一个if可知,需先上传Name,下一个if是一个md5的双等绕过,
要满足P0ST1!=P0ST2 ,且P0ST1 == md5($P0ST2).php弱类型比较,
因此传入P0ST1=0 P0ST2=QNKCDZO
用Ascii转换为字符。
得到一半flag=ISCTF{adc9
接着看下一个if,preg_match
(
'/^[0-9]*$/'
,
$GET1
)
要求get1不能包含 /^[0-9]*$/
并且还要get1==0,php弱类型自动转化,字母会变为0;get2>678并且不能为数字,可以在数字后加字母绕过
is_numeric
(
$GET2
)
代码审计,base64_encode
(
$flag2
)
使用base64加密,所以用base64解密得到
再用utf-8解码得到另一半flag
873e-9f3b-41f1-aef9-8d21f77d0022}
FakeWeb
题目提示是个假网页,用burp查看网页
直接复制题目链接,发包,得到flag。
rce?
代码审计后发现这是一道无字母数字rec绕过题目
用异或绕过字母数字
php运行后生成一个txt文档,包含所有可见字符的异或构造结果。.
然后构造一个system(‘ls /’);命令
("%08%02%08%08%05%0d"^"%7b%7b%7b%7c%60%60")("%0c%08"^"%60%7b");
再用cat命令读取flag
("%08%02%08%08%05%0d"^"%7b%7b%7b%7c%60%60")("%03%1a%28%00%00%3a%40%5b%5b"^"%60%7b%5c%20%2f%5c%2c%3a%3c");
得到flag
猫和老鼠
反序列化,需要构造实现代码
让b是a的地址,这样到时候die(a)的时候会把a当成字符串解析,b用来引用a,通过c来传一个mouse类触发tostring
先把可以利用的mouse类传给c,借c给b传从而传给a
通过die(this->a) 会调用这个类里的tostring函数
所以就可以利用那个类里的include函数实现文件包含
把得到的flag用url解码一下
得到序列化内容,用cat传参
得到base64编码后的flag,解码后得到flag
目录
EASY-PHP01
EASY-PHP02
FakeWeb
rce?
猫和老鼠