当前位置: 首页 > news >正文

[ACTF2020 新生赛]BackupFile

目录

信息收集

思路

构造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

相关文章:

  • 免费开源建站教学网站/2345纯净版推广包
  • wordpress 自定义鼠标/营销平台是什么意思
  • 广州 定制网站3000元/广州竞价托管
  • 海淀视频网站建设/企业文化宣传策划方案
  • 浙江省永康市建设局网站进不去/网络推广公司有多少家
  • 如何建设一家网站/微信引流推广
  • 自动化测试 | 这些常用测试平台,你们公司在用的是哪些呢?
  • Android大厂面试100题,涵盖测试技术、环境搭建、人力资源
  • 【QT5 实现“上图下文”,带图标的按键样式-toolbutton-学习笔记-记录-基础样例】实现方式之一
  • Android 9.0系统源码_SystemUI(八)PhoneWindow更新状态栏和导航栏背景颜色的流程解析
  • ElementUI中树形表格下拉卡死的问题解决
  • AppScan扫描报告
  • YOLOv8代码上线,官方宣布将发布论文,附精度速度初探和对比总结
  • 【docker概念和实践 1】 基本概念和组成原理
  • YOLOV8——快速训练指南(上手教程、自定义数据训练)
  • 虹科新闻 | 虹科与丹麦Eupry正式建立合作伙伴关系
  • Linux和Windows修改pip源
  • 安装zsh