当前位置:网站首页>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实操题给大家。
边栏推荐
- Detailed explanation of C language branch statements
- Dataarts studio data architecture - Introduction to data standards
- 项目中批量update
- SQL injection sqllabs (basic challenges) 11-20
- 16.[STM32]从原理开始带你了解DS18B20温度传感器-四位数码管显示温度
- 2.3 learning content
- Interval DP (gravel consolidation)
- Nine hours, nine people, nine doors problem solving Report
- 【毕业季】作为一名大二计科在校生,我有话想说
- Six common transaction solutions, you sing, I come on stage (no best, only better)
猜你喜欢
Which keywords will conflict with the abstract keyword
CODING DevSecOps 助力金融企业跑出数字加速度
一文搞定vscode编写go程序
Explanation report of the explosion
swiper. JS to achieve barrage effect
16.[STM32]从原理开始带你了解DS18B20温度传感器-四位数码管显示温度
Example of lvgl display picture
Use of set tag in SQL
Nine hours, nine people, nine doors problem solving Report
list去重并统计个数
随机推荐
后台系统发送验证码功能
16.[STM32]从原理开始带你了解DS18B20温度传感器-四位数码管显示温度
Use of RLOCK lock
vant popup+其他组件的组合使用,及避坑指南
Xiao Sha's arithmetic problem solving Report
Noi / 1.5 37: mercenaries
记录一下树莓派搭建环境中遇到的坑。。。
Good article inventory
示例项目:简单的六足步行者
Analytic hierarchy process of mathematical modeling (including Matlab code)
21. [STM32] I don't understand the I2C protocol. Dig deep into the sequence diagram to help you write the underlying driver
Relationship between objects and classes
项目sql中批量update的时候参数类型设置错误
一文带你吃透js处理树状结构数据的增删改查
【简记】解决IDE golang 代码飘红报错
Basic JSON operations of MySQL 5.7
String modification problem solving Report
Research and practice of super-resolution technology in the field of real-time audio and video
20. [stm32] realize the function of intelligent garbage can by using ultrasonic module and steering gear
vlunhub- BoredHackerBlog Moriarty Corp