[HCTF 2018]WarmUp1

[HCTF 2018]WarmUp

1

进入环境发现就只有一个img图片还显示失败,我们查看一下源代码,给出提示source.php 我们访问一下source.php ,发现是一段php代码,接下来我们对代码进行审计

我们从代码下方开始阅读

题目中涉及到的知识为 if(){}else{}函数 empty 函数 is_string函数 && 和 ||运算符号

Include 函数 exit 函数 echo 函数 isset 函数 is_stering 函数 return 函数  in_array函数 urldecode()  函数 以及 定义方法及对象的理解 及使用。

接下来我们开始像大家解释这些方法的用法:

If(){}else{}:

if小括号里面的内容如果为 真的 则会进入第一个中括号里面执行否则进入else后面的中括号执行;比如

if ( 2==1+1 )

{

echo ‘如果1+1等于2输出这句话’;

}else{

echo’如果1+1不等与2输出这句话’;

 }

小阔号里面的内容就是判断语句 ‘==’的意思就是 等不等于 的意思 然后我们就可以知道2==1+1 的意思就是 2等不与1+1 ,然后2等于 1+1 的话就进入if(){ 这里面执行代码 }

Empty():

该函数为判断括号内变量内容是不是为空如果为空返回  true(真) 不为空返回 false

为空包括 0,’0’ , null ,’null’ ,0.0 ,一个声明了但是没有值的变量,一个空数组,false。

Isset():

该函数会判断括号内的变量是否已经设置如果变量内容不为null则返回ture 否则返回false

返回false的情况有  null 但是 null 不等同与 ’null‘

is_stering

如果指定的变量为字符串则返回ture 否则返回 false

in_array( mixed $needle ,array $haystack ,strict )

Needle 必需 规定要在数组中查找的字符串

$haystack 必需 规定要搜索的数组

Strict 可选 如果该参数为true 则in_array检测被搜索的字符串与搜索的字符数组的值类型是否相同。

如果在数组中找到该值者反会ture否则返回false

Php 4.0+起search的参数可以是一个数组

|| 逻辑运算符 或运算 左右有一个为真即可在php中|| 和| 都是短路运算符他们的区别在与优先级不同

Mb_subster(str , start,length,encoding)

Str  必需  为需要提取的字符串

Start 必需 规定在字符串的何处开始 正数从指定位置开始 负数字符串结尾的指定位置开始,0 从第一个字符开始

Length 可选 规定 要返回字符串长度。默认是直到字符串的结尾

Encoding 可选 字符编码。如果省略则使用内部字符编码

Mb_strpos(string,find,start )

该函数为查找一个字符串在另一个字符串首次出现的位置,第一个位置是0第二个位置是1,如果没有找到返回false

String 必需 规定被搜索的字符串。

Find 必需 规定要查找的字符串。

Start 可选 规定开始搜索的位置。

Encoding 参数为字符编码,如果省略或是null则使用内部字符编码

Urldecode()

该函数是对里面的变量进行url编码 ,url编码就是浏览器这里的编码

比如中括号 {} 会被编码为 %7D和%7B ,可以暂时理解为一种加密方式

接下来我们开始做题

经过分析可以得知我们需要进入最有下面的if才可以进行文件包含漏洞利用,我们对传入的值进行构造  ?file=sourece.php?../../../../../../../ffffllllaaaagggg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值