[征文] CTF (Cature The Flag)

楼主: oscarchichun (ㄍ一)   2020-04-01 23:18:12
CTF (Cature The Flag) 起源于1996年 Global Hacking Conference
是较量网络安全知识与能力的竞赛
CTF 涉及的领域与知识繁多, 随着资安技术发展的加速
题目也越来越难, 入门门槛越来越高
虽然没有参赛过, 但有幸听过有经验的参赛者分享
才知道台湾这方面挺强的, 也了解到相关知识不但有趣而且重要
在这边记录讲者提供的3个体验题目与解题资讯
目标: cature the flag, 也就是要想办法取得 flag 的值
假设题目放在 10.20.104.3 这台机器
[Q1] yoyoadmin
<?php
highlight_file(__FILE__);
//get ip
$ip = 'unknown';
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else if ( !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
if ($ip === '127.0.0.1') {
require_once 'flag.php';
echo $flag;
}
else {
echo 'hi normal user';
}
?>
[Q2] test connection
<?php
highlight_file(__FILE__);
$url = isset($_POST['url']) ? $_POST['url'] : "";
if ($url != "" ) {
$pu = parse_url($url);
if (isset($pu["host"]) && isset($pu["scheme"])) {
if ($pu["host"] === "10.20.104.1"
&& ($pu["scheme"] === "http" || $pu["scheme"] === "https")
) {
require("flag.php");
exec("curl
作者: kaizz (Kaizz)   2020-04-02 04:33:00
有修过打CTF的课 真的很有趣!
作者: alan23273850   2020-04-02 09:16:00
推!所以第一个工具就可以伪装自己 ip 了吗
作者: Masakiad (Masaki)   2020-04-02 11:31:00
楼上,这么说并不正确,因为正常状况IP应该是拆layer3资料出来校对,只有php才有可能这么虾,去拆layer7的http header来校对。原文也说了是修改header而不是ip
作者: splitline (台ㄎ废文王)   2020-04-02 11:35:00
跟php没关系,纯粹是开发者的问题
作者: Masakiad (Masaki)   2020-04-02 11:48:00
我没有要贬低php语言本身,但php的开发者才容易真的写出这题目1这种弱点的系统。
作者: w181496 (Kaibro)   2020-04-02 13:05:00
回楼上 我在很多go, nodejs等正式上线专案也看过一样的错误抓ip方式,跟语言无关,纯粹是开发者观念错误
作者: Masakiad (Masaki)   2020-04-02 13:23:00
是开发者问题没错啊,但这些初学者这样写跟语言盛行时代已经网上错误文章数量有关。换言之我如果是攻击者,看到php平台我可能会优先做这样的尝试,但其他语言就很后面甚至根本不用试
作者: senjinbin56 (SJB)   2020-04-02 13:38:00
你知道XFF这种header在reverse proxy多层次架构是很正常的实作方式吗?用这个方法抓client ip在proxy架构下是没有问题的。但换个场景到一般应用,攻击者如果可以直接修改XFF header的话,就会有问题了所以就算是楼上讲的php,只要场景应用正确,那这种写法其实也不一定会有问题
作者: er230059 (CQH)   2020-04-02 15:02:00
直接抓IP Layer的IP在有PROXY的状况也是有其他商业问题
作者: Masakiad (Masaki)   2020-04-02 17:01:00
原文题目就没出proxy了,而proxy带xff就已经是穿过L3了,楼楼上应该是忘记了?
作者: pichubaby (Pichu)   2020-04-03 01:57:00
拆L3说出来大概一大堆人脑海OS我家L3拆出来192.168...事实上的问题是不太应该用IP作为安全性条件再来考虑下个问题是,Client端有同意读取或是储存IP吗这个属于个人资料保护法或是GDPR层面的问题
作者: namecoin (miyauchi renge)   2020-04-03 20:27:00
Capture The Flag
作者: leo258x (TastyFeeder)   2020-04-08 15:29:00
真的有趣

Links booklink

Contact Us: admin [ a t ] ucptt.com