CTF Web学习(二)----代码审计、burp suite应用

本文是作者关于CTF Web学习的第二部分,主要讲解了通过代码审计和Burp Suite工具解决BugKu平台上的Web安全题目。涉及知识点包括PHP弱类型比较、文件包含、全局变量、目录扫描、密码爆破、源代码查看、Base64编码等。通过实例解析了如何利用这些技巧找出并利用漏洞获取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CTF Web学习(二)

代码审计、burp suite应用

CTF Web学习目录链接
CTF Web学习(一):基础篇及头文件修改、隐藏
CTF Web学习(二):代码审计、burp suite应用
CTF Web学习(三):python脚本的编写及应用
CTF Web学习(四):SQL注入


前言

常见的CTF Web的题型都是以php、mysql环境搭建的。因此需要了解简单的php、MySQL、python代码,可以简单的阅读代码,最好还能写一下。第二期的学习主要针对php代码审计展开,我也是不太懂,都是百度搜关键字一句一句读下去,对于萌新的我来说有点费事。有错误的地方请大佬指正。此次主要是用bugku的题,大神可以直接略过。


一、BugKu Web题

以下的题都是出自bugku,但是链接不是现在bugku官网的链接,但是题型是一样的,有兴趣的人可以去先做一做,做不下去可以再来看看。

(一)BugKu Web5 矛盾

链接:http://123.206.87.240:8002/get/index1.php

$num=$_GET['num'];       #取值num
if(!is_numeric($num))    #num不能为数字
{
   
   
echo $num;
if($num==1)              #num==1
echo 'flag{**********}';
}

WriteUp:简单的一看提示,num不能为数字,但是又要等于1才能给出flag。就和题目一样“矛盾”。因此我要知道php的弱类型的比较。可以这样理解

==为弱类型
===为强类型(两边绝对相等)

在这里解释以下弱类型:在和数字比较是,弱类型会取字符串前面给出的所有数字,即:1abc == 1,会变成1abc会变成1在比较,123abc==1,123abc会变成123在比较。这道题为弱类型,因此可以解决这种矛盾的题给num=1a即可。
在这里插入图片描述

(二)BugKu Web8 文件包含

<?php 
    include "flag.php"; 
    $a = @$_REQUEST['hello'];   #取hello的值
    eval( "var_dump($a);");      #执行
    show_source(__FILE__); 
?>

WriteUp:$_REQUEST函数为取值,get和post的值都可以取。最后拼接一下:
?hello=print_r(flie(‘flag.php’))
var_dump()为递归执行,有点像print_r(),因此在拼接的时候写不写print_r都无所谓。

(三)BugKu Web9 flag In the variable !

链接:http://123.206.87.240:8004/index1.php

flag In the variable ! <?php  
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
   
   
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
   
   
        die("args error!");
    }
    eval("var_dump($$args);");
}
?>

WriteUp:题目已经给出flag在变量里面,看代码里面只有一个变量 a r g s , 还 是 我 们 准 备 给 它 的 , 经 过 一 堆 猜 想 上 面 f l a g 、 k e y 、 p a s s 等 无 果 后 , 百 度 一 下 p h p 是 否 有 全 局 变 量 , 一 查 还 真 有 G L O B A L S 。 它 的 意 思 是 全 局 有 效 的 变 量 都 在 里 面 。 那 么 我 直 接 将 G L O B A L S 赋 值 给 args,还是我们准备给它的,经过一堆猜想上面flag、key、pass等无果后,百度一下php是否有全局变量,一查还真有GLOBALS。它的意思是全局有效的变量都在里面。那么我直接将GLOBALS赋值给 argsflagkeypassphpGLOBALSGLOBALSargs,一执行就出来了。
在这里插入图片描述
一看flag在变量ZFkwe3里面,这个名字能猜到就鬼了。

(四)BugKu Web11 网站被黑了 黑客会不会留下后门

链接:http://123.206.87.240:8002/webshell/
在这里插入图片描述
WriteUp:这题拿上后,F12看了,没东西,截包看了,也没东西,注入试一下,也没有东西。那么只能在试试扫描目录了。说起扫描目录,很多工具都可以,其实玩的都是字典,谁的字典强,谁就强,这道题到无所谓,用啥都行,百度一大堆。小白可以用用御剑,dirscan、dirmap、或者王一航大神写的SourceLeakHacker,都可以。我这里用的是dirmap,因为我总结了一些字典在里面。扫描如下:
在这里插入图片描述
发现有个链接:http://123.206.87.240:8002/webshell/shell.php,是个wedshell登录界面,需要密码,猜一下无果后,还是老实用burp suite爆破吧。
在这里插入图片描述
爆破密码为hack,输入可得flag。burp suite截包和爆破就不讲了,有兴趣的可以百度一下,教程很多,该工具是CTF必备的,大神都得用。

(五)BugKu Web12 本地管理员

链接:http://123.206.31.85:1003/
WriteUp:一看题目提示:本地管理员,盲猜一下提示:
在这里插入图片描述
赶紧把x-forwarder-for打开设置为127.0.0.1。
在这里插入图片描述

盲猜一下,提示变成:Invalid credentials! Please try again!。右键看看源代码,发现最底下有个

<!-- dGVzdDEyMw== -->

base64解码为test123,再次尝试admin 和密码 test123,得到flag

(六)BugKu Web13 看看源代码?

链接:http://123.206.87.240:8002/web4/
WriteUp:题目都说了看看源代码,一看发现

<script>
var
### CTF竞赛中的代码审计工具推荐 #### 静态分析工具 静态分析工具可以在不执行程序的情况下审查源代码,帮助发现潜在的安全漏洞。 - **RIPS**: RIPS是一个专门针对PHP应用程序的开源安全扫描器。它能够自动检测多种类型的注入攻击和其他常见漏洞[^1]。 ```bash git clone https://github.com/RIPSTechnologies/rips-scanner.git cd rips-scanner php -S localhost:8080 ``` - **PhpStorm with Security Plugin**: PhpStorm是一款强大的IDE,在安装了特定的安全插件之后可以辅助开发者识别代码中的安全隐患[^3]。 #### 动态分析工具 动态分析工具通过运行目标应用并监控其行为来进行测试。 - **Burp Suite Professional**: Burp Suite提供了完整的Web应用程序安全性测试平台,其中包含了Spider, Scanner, Intruder等功能模块,可用于探索网站结构、自动化漏洞扫描以及手动发送恶意请求等操作[^2]。 ```plaintext Target Spider Scanner Intruder Repeater Sequencer Decoder Comparer ``` - **OWASP ZAP (Zed Attack Proxy)**: OWASP ZAP也是一个流行的开源选项,支持主动和被动两种方式扫描网页上的缺陷,并提供详细的报告以便进一步调查。 #### 符号执行与模糊测试工具 这些高级技术可以帮助更深入地理解代码逻辑及其边界情况下的表现。 - **AFL (American Fuzzy Lop)**: AFL是一种高效的基于覆盖率指导的fuzzer,适用于各种编程语言编写的软件,特别适合用来查找可能导致崩溃或其他异常状况的输入数据。 ```bash apt-get install afl-fuzz afl-fuzz -i inputs -o findings ./target_program @@ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值