[ACTF2020 新生赛]BackupFile

13 篇文章 2 订阅

目录

信息收集

思路

构造payload

知识补充


信息收集

从题目来看应该是让扫描备份文件(backupfile) 

进入页面就一句话

Try to find out source file!

先用dirbuster模糊扫描一下目录

常见的如下

index.phps

index.php.swp

index.php.swo

index.php.php~

index.php.bak

index.php.txt

index.php.old

常见备份文件:“.git” 、“.svn”、“ .swp” “.~”、“.bak”、“.bash_history”、“.bkf“

在index.php.bak下载到一份源码

<?php
include_once "flag.php";
if(isset($_GET['key'])) {
    $key = $_GET['key'];
    if(!is_numeric($key)) {
        exit("Just num!");
    }
    $key = intval($key);
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}
?>

思路

代码审计 

intval() 函数用于获取变量的整数值。

intval() 函数通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。

构造payload

?key=123

得到flag

知识补充

由于php中数字和字符串比较时

$v1 = "1";
$v2 = 1;
if ($v1==$v2){
 echo ("true<br/>");
} else{
 echo("false<br />");
};
if ($v1===$v2){
 echo ("true<br/>");
} else{
 echo("false<br />");
};

true
false

<?php
$a=1;
$b="text";
$c=0;
if($a==$b){
	echo "true";
}
else{
	echo "false";
}
if($c==$b){
	echo "true";
}
else{
	echo "false";
}
?>

false
true

在php中 == 判断时  当数字与字符串作比较时,系统会先将字符串转化为数字,再与数字进行比较。数字和字符串进行比较时,当这个字符串是一个无法转换为数字的字符串,它就会被强制转化为数字,结果总是为0 

数字+字符(字符串) 

<?php
$a=888;
$b="888a";
if($a==$b){
	echo "true";
}
else{
	echo "false";
}
?>

true

字符(字符串)+数字

<?php
$a=888;
$b="a888";
$c=0;
if($a==$b){
	echo "true";
}
else{
	echo "false";
}
echo '<br>';
if($c==$b){
	echo "true";
}
else{
	echo "false";
}
?>

false
true

数字+字符(字符串)+数字 

<?php
$a=8;
$b="8a8";
$c=0;
if($a==$b){
	echo "true";
}
else{
	echo "false";
}
echo '<br>';
if($c==$b){
	echo "true";
}
else{
	echo "false";
}
?>

true
false

字符(字符串)+数字+字符(字符串)

<?php
$a=0;
$b="a88a";
if($a==$b){
	echo "true";
}
else{
	echo "false";
}
?>

true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coleak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值