置顶-个人备忘笔记

绕过GD库渲染的WEBSHELL生成器

使用方法

php jpg_payload.php <jpg_name.jpg>

以ddctf Upload-IMG 为例

随意进行图片上传时提示如下

1.jpg

考虑到绕过GD库渲染

使用p神分享的工具

http://wiki.ioin.in/soft/detail/1q

命令上面已经写了,这里注意下jpg_payload.php里的$miniPayload要改成他需要的phpinfo()

然后找一张jpg图片进行payload生成

这里注意下要先将图片不经任何处理上传上去,然后下载它经过处理的图片,再利用工具生成payload图片,才可以得到flag

2.jpg

hash长度扩展攻击demo

以实验吧中的题目为例
http://ctf5.shiyanbar.com/web/kzhan.php 
简单抓包后修改cookie中的source为1,即可返回源码

1.jpg

返回的代码

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
<?php
$flag = "XXXXXXXXXXXXXXXXXXXXXXX";
$secret = "XXXXXXXXXXXXXXX"; // This secret is 15 characters long for security!

$username = $_POST["username"];
$password = $_POST["password"];

if (!empty($_COOKIE["getmein"])) {
    if (urldecode($username) === "admin" && urldecode($password) != "admin") {
        if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {
            echo "Congratulations! You are a registered user.\n";
            die ("The flag is ". $flag);
        }
        else {
            die ("Your cookies don't match up! STOP HACKING THIS SITE.");
        }
    }
    else {
        die ("You are not an admin! LEAVE.");
    }
}

setcookie("sample-hash", md5($secret . urldecode("admin" . "admin")), time() + (60 * 60 * 24 * 7));

if (empty($_COOKIE["source"])) {
    setcookie("source", 0, time() + (60 * 60 * 24 * 7));
}
else {
    if ($_COOKIE["source"] != 0) {
        echo ""; // This source code is outputted here
    }
}

2.jpg
我们可以用该段代码回显的MD5 使用hashpump工具进行利用
4.jpg

利用图如下
(工具在子系统里)
5.jpg

keylengt是 admin的长度+secret的长度

最后生成的dfb开头的md5 就是我们要构造的getmein对应的cookie
然后同时将\x替换为%
最后的数据包如下
6.jpg

参考链接:

https://www.cnblogs.com/pcat/p/5478509.html