WeChall-PHP

0x01  PHP 0817

 1 <?php
 2 if (isset($_GET[‘which‘]))
 3 {
 4         $which = $_GET[‘which‘];
 5         switch ($which)
 6         {
 7         case 0:
 8         case 1:
 9         case 2:
10                 require_once $which.‘.php‘;
11                 break;
12         default:
13                 echo GWF_HTML::error(‘PHP-0817‘, ‘Hacker NoNoNo!‘, false);
14                 break;
15         }
16 }
17 ?>

在$which变量后面会自动补上".php“,所以只要提交参数solution就可以了。

http://www.wechall.net/challenge/php0817/index.php?which=solution

0x02  Training: Register Globals

核心代码:

1 if (isset($login))
2 {
3         echo GWF_HTML::message(‘Register Globals‘, $chall->lang(‘msg_welcome_back‘, array(htmlspecialchars($login[0]), htmlspecialchars($login[1]))));
4         if (strtolower($login[0]) === ‘admin‘) {
5                 $chall->onChallengeSolved(GWF_Session::getUserID());
6         }
7 }

如果开启了register globals的话,则可以在url上输入login[0]=admin来绕过前面的逻辑判断。可以给login[0]赋初值false让代码更安全。

0x03  Training: PHP LFI

1 $filename = ‘pages/‘.(isset($_GET["file"])?$_GET["file"]:"welcome").‘.html‘;

这里会默认在$file的前面和后面分别加上pages和.html。所以这样构造url,“../”跨目录,%00截断。

http://www.wechall.net/challenge/training/php/lfi/up/index.php?file=../../solution.php%00

0x04  PHP 0818

 1 function noother_says_correct($number)
 2 {
 3         $one = ord(‘1‘);
 4         $nine = ord(‘9‘);
 5         # Check all the input characters!
 6         for ($i = 0; $i < strlen($number); $i++)
 7         {
 8                 # Disallow all the digits!
 9                 $digit = ord($number{$i});
10                 if ( ($digit >= $one) && ($digit <= $nine) )
11                 {
12                         # Aha, digit not allowed!
13                         return false;
14                 }
15         }
16
17         # Allow the magic number ...
18         return $number == "3735929054";
19 }

这个题目要求输入的$number要和3735929054相等,从上面的代码可以看出,输入的$number之中不能包含1-9之间的数字。在php中,数字型字符串在进行比较的时候会直接转换成数值来进行比较,所以就可以输入3735929054的hex值来bypass。这里要更安全更快的话,在return那里应该使用" === "。

时间: 2025-01-02 03:45:56

WeChall-PHP的相关文章

WeChall writeup

PHP - Local File Inclusion ############################### ### Here is your exploit :) ### ############################### $code = '$filename = \'pages/\'.(isset($_GET["file"])?$_GET["file"]:"welcome").\'.html\';'; $code_emul

【Wechall.net挑战】Anderson Application Auditing

Wechall.net是一个国外用于练习CTF和攻防的网站,国内资料writeup不多,只有个别几篇.作为小白,近日玩了几道有意思的题目,在此分享 题目地址:http://www.wechall.net/challenge/Z/aaa/index.php 题目大意是要入侵一个网络,给了一些已知的信息 在源码中找到www.wechall.net/challenge/Z/aaa/partners.html 然后找到技术文档:http://www.wechall.net/challenge/Z/aaa

wechall.net/stegano 解题心得

最近迷上了 www.wechall.net 网站,里面都是些与计算机相关的题目挑战.题目又分很多类型,例如:加密与解密.隐写术.网络攻防.趣味编程.数学逻辑等.题目有的简单,有的很难,需要一些知识和技巧.与其他题目挑战的网站不同的是,在其他类似性质的网站注册的用户可以绑定到 WeChall 网站,然后 WeChall 提供排名信息,而且也分得很细,什么按总分全球排名.什么在自己国家的排名.什么解答某种语言网站题目的排名等.可以从解题的人数判断题目的难易程度,有兴趣的朋友可以去注册,解题中也能学到

【WeChall 】Stegano Challenges:Training: LSB

Topic request: This is a very simple, yet spectacular trick. Can you see the hidden solution? Note: The solution is bound to your session ID and consists of twelve letters. Hidden Hint: http://wechall.blogspot.com/2007/11/steganabara-explained.html T

WeChall Training: WWW-Robots

Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬虫排除标准"(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取.Robots协议的本质是网站和搜索引擎爬虫的沟通方式,用来指导搜索引擎更好地抓取网站内容,而不是作为搜索引擎之间互相限制和不正当竞争的工具. 找到wechall的robots.txt    http://www.wechall.net/robots.txt 访问http://www.w

Wechall 部分WP

前言: 开始打CTF,掌握一些新的姿势与知识. 这里我选择的平台是Wechall.这里从简单到难 WP部分: Training: Get SourcedAnswer: 查看网页源代码 Training: Stegano IAnswer 这里有张图片,下载.用十六进制打开获得password Training: Crypto - Caesar IAnswer 题目提示凯撒密码加密.这里感谢一下群里某位师傅发的进制转换器.很好用 Training: WWW-Robots (HTTP, Trainin

[WeChall] Training: MySQL I (MySQL, Exploit, Training)

Training: MySQL I (MySQL, Exploit, Training) MySQL Authentication Bypass - The classic This one is the classic mysql injection challenge. Your mission is easy: Login yourself as admin. Again you are given the sourcecode, also as highlighted version.

[WeChall] Training: Crypto - Caesar I (Crypto, Training)

Training: Crypto - Caesar I (Crypto, Training) Crypto - Caesar I As on most challenge sites, there are some beginner cryptos, and often you get started with the good old caesar cipher. I welcome you to the WeChall style of these training challenges :

wechall NO ESCAPE MYSQL I MYSQL II

  <?php // // Trigger Moved to index.php //if (false !== ($who = Common::getGet('vote_for'))) { //      noesc_voteup($who);//} // /**  * Get the database link  * @return GDO_Database */ function noesc_db() {         static $noescdb = true;         if

【WeChall 】Stegano Challenges:Training: Stegano I

Topic request: This is the most basic image stegano I can think of 题目提示这是最基础的图片隐藏术,那么一般来说在隐写术中最基础的应该属于在图片中插入信息了. 首先我们需要下载一个winhex,然后我们将隐写了的图片加载到工具中就可以看到 passwd:steganoI