当前位置:网站首页>CISP-PTE之SQL注入(二次注入的应用)
CISP-PTE之SQL注入(二次注入的应用)
2022-07-05 15:28:00 【炫彩@之星】
CISP-PTE实操题之SQL注入
前言
很久没有给大家发文章了,因为最近在准备CISP-PTE的考试,所以在加紧时间练习中,最近发现实操题中SQL注入又很经典的二次注入的题型,想给大家分享一下做题的方法。
一、实操题之SQL注入
因为这道SQL注入题比较麻烦,讲解比较麻烦,就先用一篇文章专门写这道SQL注入题,后期会更新新的题型讲解。
二、解题步骤及方法
1.寻找解题出思路
从题意中我们可以看出,答案就在我们的数据库里,只需要寻找突破点,注入语句,就可以获取答案了。我们点击进去看看。
发现是一个文章发表系统。我们尝试登录 一下,用弱口令试一下
登入失败,只能注册看一下了
注册了一个hao,123的用户,发现可以进行注册
进去后,看到之前发表的文章,现在尝试发表一下文章,看看是否有注入点
填入数据后,成功插入
我们插入一个乱码和符号看看
当我们插入单引号和注释符的时候,出现报错,说明存在注入点,接下来开始插入SQL语句进行注入。
2.执行SQL注入语句
这时我们就要看用什么注入方法才好呢,通过看题干发现,过滤了’–'和#号,且无法进行直接填入,提交后也无法显示数据库信息,这时我们就会想到二次注入的方法,进行注入SQL查询语句,二次注入的原理和方法在前面的渗透测试专栏已经讲解过了,大家可以回头看看。
(1)首先注册两个账号,以我的示例就是hao,*/‘hao’)#,密码都是123
原理是这样,如下图:
利用二次注入以及注入半闭合完成注入,先在*/’1234ewq’);#浏览器插入文章内容,poc依次如下
AAA’,(select database()),/*
AAA’,(select group_concat(table_name) from information_schema.tables where table_schema like 0x32776562),/*
AAA’,(select group_concat(column_name) from information_schema.columns where table_schema like 0x32776562 and table_name like 0x61727469636C6531 ),/*
AAA’,(select group_concat(content) from (select * from article1 limit 0,1)as a ),/*
返回正常用户1234ewq
这里解答一下,利用//来注释多余的引号,致使我们插入的select语句能够显示出来,其次由于二次注入用户*/’1234ewq’);#最后插入至表中的用户名实际为 1234ewq 所以需要在正常用户去查看
让我们看一下效果吧
利用难度:
首先屏蔽注释符#、–,但是在注册的时候并没有屏蔽注释符,由于mysql特性,//里面的内容会被注释掉,且insert into 表名 value() 方法需要对字段一一填充,也就是说多一个字段不行,少一个字段也不行;且只有2/3字段才能显示出来,故先注册一个二次注入用户名,而后再插入语句中借助二次注入用户名进行特殊闭环,形成
insert article1 value(’’,‘AAA’,(select database()),/’,’’,’/ ‘1234ewq’);#’)
这样插入至数据库则会变成这样
insert article1 value(’’,‘AAA’,(select database()), ‘1234ewq’)
其次就是插入后进行字段查询,由于article1 表出现相同表名会导致数据库死循环,报错,故需要进行as别名,且若是不加入limit语句进行限制,则会无法导出任何内容,limit任意值皆可
以上是网上的详细的解答方法,就是帮助大家理解,我来讲解一下我的方法
先登录*/‘hao’)#账号,这样注册的账号原理,上面已经讲的很清楚了,就是为了注释掉前面和后面的引号和逗号
(2)我们登录进去进行发表文章,接下来就是进行提交SQL语句了,因为这里提交是看不到的,实际上是提交到hao的账号里去了
(3)SQL手工注入方法
select schema_name from information_schema.schemata(查库)
select table_name from information_schema.tables where table_schema=库名(查表)
select column_name from information_schema.columns where table_name=表名(查列)
select 列名 from 库名.表名(查数据)
先查看有哪些库
插入成功
再看看库有哪些表
插入成功
这时,我们通过插入的结果可以看出插入的是article1表
接下来看看表中有哪些字段
表中都有这些字段,这时答案最有可能的是出现在title和content上,所以我们开始查数据,将数据全部输出来
我们可以看到答案就在content字段里,且并不是第一行,而是随机的一行里,所以要多限制几行数据。
答案就是:key1:u9y8tr4n
总结
这道SQL注入题就解析到这里了,希望大家可以好好看看解题思路和二次注入的方法。下次会更新新的CISP-PTE实操题给大家。
边栏推荐
- Temporary cramming before DFS examination
- 示例项目:简单的六足步行者
- DataArts Studio数据架构——数据标准介绍
- 抽象类和接口的区别
- 五种常见的咨询公司谈判策略以及如何维护自己的利益
- Background system sending verification code function
- vulnhub-Root_ this_ box
- Parameter type setting error during batch update in project SQL
- RepLKNet:不是大卷积不好,而是卷积不够大,31x31卷积了解一下 | CVPR 2022
- MySQL5.7的JSON基本操作
猜你喜欢
数学建模之层次分析法(含MATLAB代码)
obj集合转为实体集合
Arduino controls a tiny hexapod 3D printing robot
Why should we learn mathematical modeling?
List de duplication and count the number
Appium automation test foundation - appium basic operation API (II)
21.[STM32]I2C协议弄不懂,深挖时序图带你编写底层驱动
Usage and usage instructions of JDBC connection pool
Quick completion guide for manipulator (IX): forward kinematics analysis
Appium自动化测试基础 — APPium基础操作API(一)
随机推荐
The difference between abstract classes and interfaces
Data communication foundation ACL access control list
【簡記】解决IDE golang 代碼飄紅報錯
Noi / 1.4 07: collect bottle caps to win awards
list集合根据对象某属性求和,最大值等
19.[STM32]HC_ SR04 ultrasonic ranging_ Timer mode (OLED display)
Xiao Sha's arithmetic problem solving Report
Quick completion guide for manipulator (IX): forward kinematics analysis
go语言编程规范梳理总结
vant popup+其他组件的组合使用,及避坑指南
JS knowledge points-01
I'm fat, huh
Vulnhub-Moneybox
Dataarts studio data architecture - Introduction to data standards
Use of set tag in SQL
SQL injection sqllabs (basic challenges) 1-10
Virtual base class (a little difficult)
Optional parameters in the for loop
The visual experience has been comprehensively upgraded, and Howell group and Intel Evo 3.0 have jointly accelerated the reform of the PC industry
vlunhub- BoredHackerBlog Moriarty Corp