BUUOJ [CISCN2019 华北赛区 Day2 Web1]Hack World

补一下这道题,顺便发篇博客

不知道今年国赛是什么时候,菜鸡还是来刷刷题好了

0X01 考点

SQL注入、盲注、数字型

 

0X02自己尝试

 

 

 

尝试输入1

 

 

赵师傅需要女朋友吗???随便都能有好吧

输入2

 

 

???黑人问号

 

输入3

提交空

 

 

输入union都被过滤....

 

每次sql注入就很迷茫,然后fuzz测试一把...

发现好多都被过滤了

 

后来找到赵师傅的视频看了一下

有写 :通过1^1^1这个知识点绕过

1^(if((ascii(substr((select(flag)from(flag)),1,1))=102),0,1))

 

后面看了大佬们的脚本,发现自己还是太菜了,菜鸡的脚本就不贴上来了,各位看官可以去看看别的大佬的脚本

有二分法、布尔盲注、延时等等

附上大佬们的博客:

https://blog.csdn.net/weixin_43345082/article/details/99062970

https://www.cnblogs.com/20175211lyz/p/11435298.html

https://www.cnblogs.com/kevinbruce656/p/11342580.html

 

本题源码,希望对各位大佬有帮助

 

<?php
$dbuser='root';
$dbpass='root';

function safe($sql){
    #被过滤的内容 函数基本没过滤
    $blackList = array(' ','||','#','-',';','&','+','or','and','`','"','insert','group','limit','update','delete','*','into','union','load_file','outfile','./');
    foreach($blackList as $blackitem){
        if(stripos($sql,$blackitem)){
            return False;
        }
    }
    return True;
}
if(isset($_POST['id'])){
    $id = $_POST['id'];
}else{
    die();
}
$db = mysql_connect("localhost",$dbuser,$dbpass);
if(!$db){
    die(mysql_error());
}   
mysql_select_db("ctf",$db);

if(safe($id)){
    $query = mysql_query("SELECT content from passage WHERE id = ${id} limit 0,1");
    
    if($query){
        $result = mysql_fetch_array($query);
        
        if($result){
            echo $result['content'];
        }else{
            echo "Error Occured When Fetch Result.";
        }
    }else{
        var_dump($query);
    }
}else{
    die("SQL Injection Checked.");
}

 

posted @ 2020-04-08 11:39  青梅茶  阅读(302)  评论(0编辑  收藏  举报