2024.12.2——攻防世界cookie
题目:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?
知识点:cookie
一、解题思路
step 1 审题
cookie里放了些东西,猜测flag在cookie信息中
step 2 查询cookie
打开靶机,按F12打开开发者工具→应用程序→左侧cookie信息
step 3 查看文件
在url传参查看cookie.php文件,根据提示查看http报头。
http报头在网络中可以查看到flag信息
2024.12.2——[ACTF2020 新生赛]BackupFile 1
知识点:备份文件名
备份文件名
1.常见的后缀名:".git" ".svn" ".swp" ".~" ".bak" ".bash_history" ".bkf"
2.示例:加上index.php后缀网页没反应,可以加上index.php.bak时提示下载文件,用txt打开得到flag
Dirsearch目录扫描
-
绿色:表示发现了存在的目录或文件
-
红色:表示请求失败或返回了错误状态码。通常情况下,红色代表目标资源不存在,或访问该资源时遇到服务器错误(如 404 Not Found 或 500 Internal Server Error)。
-
紫色:通常表示扫描器所请求的资源需要认证或特殊权限才能访问,或者是某些提示信息,例如“可能存在敏感目录”之类的警告。
一、解题思路
step 1 审题&分析
题目:backupfile,说明本题与备份文件有关。
step 2 目录扫描
工具:dirsearch。
注:文件数目太多,不建议,解决方法:命令后缀加上bak等备份文件后缀,越详细越好
python环境下进行目录扫描:
python dirsearch.py -u url -e *(*为全部文件,可替换后缀名)
step 3 发现可疑文件
发现绿色标识:index.php.bak
,在url上传参下载后在记事本中查看
step 4 代码审计
<?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!";
}
第一个if:只需要用key
传一个非空的值即可满足
第二个if:输数字,就不会触发exit, 所以,str在和key进行比较的时候,str会转换为123 。
(!is_numeric($key))
:如果 $key
是数值,比如整数、浮点数等,那么这个表达式就会返回 false
;如果 $key
不是数值类型,比如是字符串、数组、对象等其他类型,这个表达式就会返回 true
。
intval()是一个用于将数值转换为整数int的函数
在PHP中,= = 为弱比较,整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123abc进行==比较时。则b只会截取前面的整数部分,即b转化成123。)
step 5 传参key
在这里传一个参数?key=123&str=123
就可以拿到flag
2024.12.2——[ACTF2020 新生赛]BackupFile 1
知识点:备份文件名
备份文件名
1.常见的后缀名:".git" ".svn" ".swp" ".~" ".bak" ".bash_history" ".bkf"
2.示例:加上index.php后缀网页没反应,可以加上index.php.bak时提示下载文件,用txt打开得到flag
Dirsearch目录扫描
-
绿色:表示发现了存在的目录或文件
-
红色:表示请求失败或返回了错误状态码。通常情况下,红色代表目标资源不存在,或访问该资源时遇到服务器错误(如 404 Not Found 或 500 Internal Server Error)。
-
紫色:通常表示扫描器所请求的资源需要认证或特殊权限才能访问,或者是某些提示信息,例如“可能存在敏感目录”之类的警告。
一、解题思路
step 1 审题&分析
题目:backupfile,说明本题与备份文件有关。
step 2 目录扫描
工具:dirsearch。
注:文件数目太多,不建议,解决方法:命令后缀加上bak等备份文件后缀,越详细越好
python环境下进行目录扫描:
python dirsearch.py -u url -e *(*为全部文件,可替换后缀名)
step 3 发现可疑文件
发现绿色标识:index.php.bak
,在url上传参下载后在记事本中查看
step 4 代码审计
<?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!";
}
第一个if:只需要用key
传一个非空的值即可满足
第二个if:输数字,就不会触发exit, 所以,str在和key进行比较的时候,str会转换为123 。
(!is_numeric($key))
:如果 $key
是数值,比如整数、浮点数等,那么这个表达式就会返回 false
;如果 $key
不是数值类型,比如是字符串、数组、对象等其他类型,这个表达式就会返回 true
。
intval()是一个用于将数值转换为整数int的函数
在PHP中,= = 为弱比较,整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123abc进行==比较时。则b只会截取前面的整数部分,即b转化成123。)
step 5 传参key
在这里传一个参数?key=123&str=123
就可以拿到flag
2024.12.3——攻防世界get_post
知识点:GET POST
-
GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。
-
POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。
区别:GET请求的数据会暴露在地址栏中,而POST请求则不会。
一、解题思路
step 1 按照指示进行get传参
url/?a=1
step 2 进行post传参
两种方法
①cmd进行传参
curl -d "b=2" -X POST http://111.200.XXX.XXX:XXXXX/?a=1
即可在cmd中得到flag
②火狐浏览器HackBar插件
得到flag