CTF--web BugKu-ctf-web(1-10)
作者:互联网
1.web2
题目地址:http://123.206.87.240:8002/web2/
查看网页源代码得到flag KEY{Web-2-bugKssNNikls9100}
2.计算器
题目地址:http://123.206.87.240:8002/yanzhengma/
打开题目链接发现是简单的数学计算,但是只能输入一位数字
查看网页源码发现输入的maxlength=1
火狐浏览器f12,查看器,修改maxlength=5
重新输入计算结果,验证,得到flag
3.web基础$_GET
题目地址:http://123.206.87.240:8002/get/
在url后加上index.php?what=flag或?what=flag
得到flag{bugku_get_su8kej2en}
4.web基础$_POST
post传参
点击run
得到flag{bugku_get_ssseint67se}
5.矛盾
http://123.206.87.240:8002/get/index1.php
需要构造$num,使得$num不是数字或数字字符串,且($num==1)为true
php是一种弱类型语言
https://www.cnblogs.com/qing123tian/p/10778615.html
构造$num=1+字母,如num=1x
得到flag{bugku-789-ps-ssdf}
6.web3
题目地址:http://123.206.87.240:8002/web3/
题解:https://www.cnblogs.com/0yst3r-2046/p/10738710.html (引用https://www.cnblogs.com/0yst3r-2046/)
右键查看网页源码
HTML解码
得到<!--KEY{J2sa42ahJK-HS11III}-->
7.域名解析
域名解析
50
听说把 flag.baidu.com 解析到123.206.87.240 就能拿到flag
修改本机hosts文件
hosts文件地址C:\Windows\System32\drivers\etc\hosts
在末尾加上123.206.87.240 flag.baidu.com
浏览器打开flag.baidu.com得到flag
KEY{DSAHDSJ82HDS2211}
8.
你必须让他停下
60
地址:http://123.206.87.240:8002/web12/
作者:@berTrAM
右键检查,仔细观察,闪动过程中会出现flag,眼疾手快把它复制下来(这不是正确解法,正确解法引用(https://www.cnblogs.com/Gzu_zb/p/10035968.html))
(正确解法我没搞出来~~~~~)hhhhh
复制得到flag <a style="display:none">flag{dummy_game_1s_s0_popular}</a>
9.
本地包含
60
地址:http://123.206.87.240:8003/
参考:https://segmentfault.com/a/1190000016750234?utm_source=tag-newest
<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);
?>
$_REQUEST:默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。(https://www.php.net/manual/zh/reserved.variables.request.php)
eval:eval — 把字符串作为PHP代码执行(https://www.php.net/manual/zh/function.eval.php)
var_dump — 打印变量的相关信息(https://www.php.net/manual/zh/function.var-dump.php)
此函数是该函数的别名: highlight_file().
highlight_file — 语法高亮一个文件(https://www.php.net/manual/zh/function.highlight-file.php)
PHP魔术常量__FILE__:文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__
总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
几个 PHP 的“魔术常量”(https://www.php.net/manual/zh/language.constants.predefined.php)
成功输出 flag.php 文件内容 flag{bug-ctf-gg-99}
10.
变量1
60
http://123.206.87.240:8004/index1.php
参考:https://blog.csdn.net/Auuuuuuuu/article/details/79616285(这个write up 写的很详细,受益匪浅)
error_reporting — 设置应该报告何种 PHP 错误
isset — 检测变量是否已设置并且非 NULL
$_GET---get方式传参
preg_match — 执行匹配正则表达式
die — 等同于 exit()
解题思路:eval()函数存在命令执行漏洞 我们的目标是查看flag1.php中的flag 首先想到的是本地包含漏洞查看源码 或者上传一句话木马等思路
而本题条件判断加了正则表达式判断,过滤了括号和引号等字符。无法构造! 但输出时是 $$args
我们想到构造 php中超全局变量 $GLOBALS
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
构造url:http://123.206.87.240:8004/index1.php?args=GLOBALS
flag{92853051ab894a64f7865cf3c2128b34}
php官方文档(https://www.php.net/manual/)
新手入门,参考了很多博客,谢谢。
标签:web,www,BugKu,123.206,flag,CTF,https,87.240,php 来源: https://www.cnblogs.com/qing123tian/p/10921490.html