第一届“百度杯”信息安全攻防总决赛 web Upload

进入题目后 先查看页面源代码:

就是说post发送ichunqiu=你发现的东西

 

抓包发送到repeater

base64解密

猜测 大概能再解码一次

得到一串数字

 

post方式发送ichunqiu=这串数字

页面反显fast,说明我们得用脚本跑

 

import base64,requests

def main():
    a = requests.session()
    b = a.get("http://be27796e9fab4928b78d609e894a64f02db126a3d76e4996.changame.ichunqiu.com/")
    key1 = b.headers["flag"]
    c = base64.b64decode(key1)
    d = str(c).split(":")
    key = base64.b64decode(d[1])
    body = {"ichunqiu": key}
    f = a.post("http://be27796e9fab4928b78d609e894a64f02db126a3d76e4996.changame.ichunqiu.com/", data=body)
    print f.text

if __name__ == '__main__':
    main()

 

访问后进入新的页面

这里对这个网页进行源码泄露扫描发现这个 

访问这个页面,得到:

解密得:8638d5263ab0d3face193725c23ce095

 

然后破解下验证码

substr(md5(captcha), 0, 6)=02ac0d 根据这个提示符写下脚本

for($a; $a<100000000; $a++){
	if(substr(md5($a),0,6) == '02ac0d'){
		echo $a;
		exit();
	}
}

得到4682256,登陆

 

访问后进入新的页面

选择一个图片上传, 改后缀为pht即可获得 flag, Content-Type: 务必为 image/jpeg

 

为何可以直接上传后缀为 pht 或 phtml 绕过黑名单呢?

php的conf文件中是有一个正则的后缀名限制的,只要符合都可以被当做php文件执行。

符合的后缀包括 php、php3、php4、php5、phtml、pht 等。

 

什么环境下可以解析 phtml 和 pht 呢?

1,phpstudy和wamp以及centos用yum方式 安装的lamp环境不能解析phtml和pht

2,ubuntu和debian利用apt-get方式安装的lamp环境 就能解析phtml和pht

 

利用这些环境特性和黑名单就能绕过限制,达到上传webshell的目的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟敛寒林o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值