CTF-代码审计

Posted tlbjiayou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTF-代码审计相关的知识,希望对你有一定的参考价值。

 

 

 

 

1.bugku 备份是个好习惯

网址:http://123.206.87.240:8002/web16/

 

进去什么都没有,题目说备份想到备份文件,所以直接再后面加个    .bak技术图片

 

拿到源码:

<?php
/**
* Created by PhpStorm.
* User: Norse
* Date: 2017/8/6
* Time: 20:22
*/

include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER[‘REQUEST_URI‘], ‘?‘);   //  strstr(str1,str2)  字符串str1中搜索str2,如果存在则返回str2及str2以后得剩余部分;

$str = substr($str,1);      //  php 得substr() 这里省略了第三个参数 长度,所以从第一个开始截取到最后;
$str = str_replace(‘key‘,‘‘,$str);  //   str_replace("world","Shanghai","Hello world!")  把hello world里面得world换成shanghai

// 这里把输入得参数用空字符串去代替了key,所以需要双写key绕过

parse_str($str);  
echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2)
echo $flag."取得flag";

?>

 

 

 构造payload:
?kkeyey1=240610708&kkeyey2=aabC9RqS
 
 
拿到flag   BugkuOH_YOU_FIND_MY_MOMY
 
 
 
2.bugku 本地包含  
 
 
网址: http://123.206.87.240:8003/
 
eval命令执行漏洞,构造payload得方法太多,推荐这个博客 :https://blog.csdn.net/xuchen16/article/details/82734758
 
技术图片

 

 
 
 
    php知识:    strstr()  str_replace()  还有 $_REQUSTE() 可以得到 GET 和POST 两个得参数

 

以上是关于CTF-代码审计的主要内容,如果未能解决你的问题,请参考以下文章

CTF:lottery(代码审计|==比较绕过)

某CTF平台一道PHP代码审计

CTF-代码审计——parse_str()变量覆盖

espcms代码审计

WEB攻防-通用漏洞&文件包含&LFI&RFI&伪协议编码算法&代码审计

PHP代码审计分段讲解