NNctf2018 Web WriteUp


WEB

1.超简单

分值:100 类型:WEB 已解决

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

img)点击并拖拽以移动

代码审计

<?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截断

img

2.帽子商城

分值:200 类型:WEB 未解决

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

3.Sql???

分值:200 类型:WEB 已解决

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

img

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

img

img

img

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

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

/.git/文件恢复

img

img

对index.php进行代码审计

img

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

case when测试:

img

条件满足:

  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

img


Author: Qftm
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Qftm !
 Previous
XSS 绕过技术 XSS 绕过技术
XSSCross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常是可以被看作漏洞的。它允许攻击者绕过安全机 制,通过尝
2018-12-22
Next 
C Programming Language Data Structure Learning C Programming Language Data Structure Learning
C语言实现二叉树的创建&遍历算法思想重点是递归的使用 利用扩展先序遍历序列创建二叉链表。 采用类似先序遍历的递归算法,首先读入当前根结点的数据,如果是’.’则将当前树根置为空,否则申请一个新结点,存入当前根结点的数据,分别用当前根结
2018-11-25
  TOC