• CG-CTF(6)


    CG-CTF

      https://cgctf.nuptsast.com/challenges#Web

     

      续上~

      第三十一题:综合题2

      查看本CMS说明;

     

      分析:

        ①数据库表名为admin;字段名为username和userpass(这里直接告诉我们表名和字段名,猜测大概率存在SQL注入漏洞);

        ②下面列了一些文件名,如say.php、passencode.php等,用burp爬出了so.php等;

        ③在url处可以发现file可以直接读取文件;

      思路:先用file参数读取这些文件,以获取更多信息;

       分析:

        ①passencode.php文件里建立了一个加密函数,分析代码可知对输入的参数的每一个字符转成ASCII码后输出;

        ②about.php文件里暴露了后台目录:http://cms.nuptzj.cn/loginxlcteam;

        ③so.php里暴露了很多有用的信息:

    • 检查了HTTP头部的User-Agent参数,必须为Xlcteam Browser才可以通过检验,用burp修改HTTP头部即可简单绕过;
    • POST参数为'soid';此处可能存在SQL注入漏洞;
    • 包含了两个文件antiinject.php和antixss.php,先简单分析代码即可知是对SQL注入和XSS跨站脚本的一些字符做了过滤;
    • 可以看到查询数据库的命令为:
      SELECT * FROM 'message' WHERE display=1 AND id=$id

        ④分析查询命令我们可以发现如果存在SQL注入漏洞,即为数字型注入漏洞,那么来仔细分析antiinject.php里的过滤规则,通过分析代码我们可以发现它对“select”、“union”、“and”、“from”等单词进行了黑名单过滤,对“+”、“=”、“空格”等字符也进行了黑名单过滤,而采用的过滤方法是用str_repalece()函数将黑名单替换掉,那么我们可以采用双写、大小写来绕过单词过滤,采用“/**/”注释绕过空格过滤,采用“like”或“>”、“<”来绕过“=”过滤,可以判断这里存在SQL注入漏洞;

      思路:已知数据库表名为admin,字段名为username和userpass,并已知过滤规则,这里我们采用exists()函数来直接爆破字段的内容,工具使用burp自带的intruder模块,payload为:

    soid=1/**/anandd/**/exists(selselectect/**/*/**/frfromom/**/admadminin/**/where/**/oorrd(substr(usernanameme,§1§,1))>§1§)
    

      和

    soid=1/**/anandd/**/exists(selselectect/**/*/**/frfromom/**/admadminin/**/where/**/oorrd(substr(userppassass,§1§,1))>§1§)
    

      得到username的字段内容为admin,userpass的字段内容为102 117 99 107 114 117 110 116 117,根据之前分析的passencode.php,可知解密后应为fuckruntu;

      用获得的账号密码登录后台;

      得知了木马文件的文件名,再用之前的file参数读取木马文件的内容;

      分析代码可知,这段代码的含义为用wtf参数里的内容替换到www里去执行,直接用Cknife连接;

      打开“恭喜你获得flag2.txt”文件;

      取得flag(干杯~);

      完结撒花~

  • 相关阅读:
    java的枚举
    java解析XML的三种方法
    java静态代理
    java注释
    Jquery基础之DOM操作
    sql点滴43—mysql允许用户远程登陆
    js实现复制功能
    MVC ViewData和ViewBag
    Visual Studio 2013 Web开发新特性
    VisualStudio2013快捷键
  • 原文地址:https://www.cnblogs.com/Dio-Hch/p/12010137.html
Copyright © 2020-2023  润新知