首先。题目就一个input和login
login需要admin密码
先从input开始
随手输了个123报错了。
得到信息如下。
Powered by CherryPy 17.4.2
调用了urllib2.open
通过百度。我们得到了python urllib头注入
漏洞复现
这是16年的洞了。unbantu上复现了下失败。
在Centos5上python2.4复现成功😂(版本老的好处)
import urllib2
import sys
url=sys.argv[1]
result=urllib2.urlopen(url)
print result.read()
#通过命令行传参
漏洞原理是urllib在解析url时。接受URL编码的值。会包含在HTTP数据流中。
那么我们就可以通过%0d%0a去构造一个新的HTTP请求
以上实验。我们开了一个80端口和8080端口
然后通过构造请求。成功访问到8080端口
同理。既然我们能访问到8080。那么是否就能攻击Redis。内网这些薄弱的应用
继续我们的CTF题解
之前说login页面需要密码才能登陆。这题其实。就是通过urllib注入redis。修改admin密码
http://127.0.0.1%0d%0a%0d%0aset%20admin%20admin%0d%0aHost:%20127.0.0.1:6379
也可以直接写:6379不用指定Host头
靶机上。写了脚本定时修改redis数据。发完payload立马用admin登陆。即可