拿点CTF练练手,美滋滋~

简单的登陆题

这一题有点难度,卡住了~~

后台登陆

查看源码

<!-- $password=$_POST['password'];
    $sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";
    $result=mysqli_query($link,$sql);
        if(mysqli_num_rows($result)>0){
            echo 'flag is :'.$flag;
        }
        else{
            echo '密码错误!';
        } -->

注入题是肯定的。。但是经过了md5加密,然后就去网上搜了一波关于md5的注入。。然后就发现了一个神奇的字符串:ffifdyop竟然发现。。。跟这道题的php文件是同一个名字,仿佛明白了什么之后,就去试了试提交。。结果flag就出来了。。

原理:

与SQL注入原理相同,只是需要用爆破md5来求出字符串

当我们苦心孤诣的想,什么字符串经过md5加密后又可以转换成我们想要的注入字符串时,已经有大牛用脚本爆破出一个“万能”flag了。。

加了料的报错注入

这里过滤了# =

PHP大法

解题链接

关键代码:

将hackerDJ url编码之后发现,还是not allowed 。就重新捋了一遍逻辑,发现浏览器url栏上会url解码一次,所以需要将hackerDJ二次url编码,再get进去就得到flag了。

上传绕过

解题链接

一看到上传绕过就想到了00截断

首先尝试上传php文件,然后发现要上传图片,然后又试了试上传图片,发现成功上传,但是又要求php后缀才行。。于是就觉得是在前端判断是否是图片后缀,然后再判断上传到目录中的文件是否是php来get flag。所以就在burp里改了file name,再改了hex,然后就OK了。

简单的SQL注入

解题链接

这个真是“简单”啊。一下子过滤了那么多~~~不过也get也一波绕过waf新方法。。但是,只要把绕过找出来。。藏flag的地方的确很。。。

用sqlmap跑,再用上一个绕waf脚本,ok!

深入理解SQL注入绕过WAF和过滤机制

简单的SQL注入2

解题链接

解题思路一样

sqlmap -u "http://ctf5.shiyanbar.com/web/index_2.php/?id=1" --dump -C flag -T flag -D web1 --tamper="space2comment.py" --level=3

简单的SQL注入3

连flag都一样的~如果用sqlmap跑这三道题,简直是送分,当然,如果手注的话,还是会发现细微的区别的!