ctf PHP一句话木马,网络内生安全试验场——CTF答题夺旗赛(第三季)Web详细Writeup...

CTF夺旗赛第三季WEB题目Writeup这次比赛的Web题目都比较基础,总共有五道,考察的知识点也都比较明显,所以借这次的题目来简单介绍一下几种漏洞的简单利用方法,下面的解题过程有的地方会写的比较细,主要是写给我们萌新看的,大佬们轻喷。weak题目难度 ⭐php中有两种比较的符号 == 与 === ,=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较== 在进行比较的时候,会先将...
摘要由CSDN通过智能技术生成

CTF夺旗赛第三季WEB题目Writeup

这次比赛的Web题目都比较基础,总共有五道,考察的知识点也都比较明显,所以借这次的题目来简单介绍一下几种漏洞的简单利用方法,下面的解题过程有的地方会写的比较细,主要是写给我们萌新看的,大佬们轻喷。

weak

题目难度 ⭐

php中有两种比较的符号 == 与 === ,=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较== 在进行比较的时候,会先将字符串类型转化成相同,再比较, 如果遇到了 0e\d+ 这种字符串,就会将这种字符串解析为科学计数法。"0e132456789"=="0e7124511451155"  中 2 个数的值都是 0 因而就相等了。如果不满足 0e\d+ 这种模式就不会相等。

打开网址看到了右上角明显的管理平台,点进去之后是一个用户管理平台,有一个明显的跳转到测试页链接,点进去看到了下面这些代码,感觉这就是题目的关键点了。

highlight_file(__FILE__);

if (isset($_POST['username']) && isset($_POST['password'])) {

$logined = false;

$username = $_POST['username'];

$password = $_POST['password'];

if (!ctype_alpha($username)) {              #1

$logined = false;

}

if (!is_numeric($password)) {               #2

$logined = false;

}

if (md5($username) == md5($password) && $username != $password) {           #3

$logined = true;

}

if ($logined) {

echo "login succeed! and flag is flag{xxxxxxxxxxxx}";

} else {

echo "login failed!";

}

}

?>

首先是判断是否通过POST传入username和password两个数据&#x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CTF(Capture The Flag)竞赛中,常见的一个攻击技术是PHP代码注入(PHP Code Injection)。这种攻击利用了应用程序对用户输入的不充分验证和过滤,使得攻击者能够将恶意的PHP代码注入到应用程序中,从而执行任意代码或实施其他攻击。 以下是一些常见的PHP代码注入漏洞场景和防范措施: 1. 用户输入的直接执行:如果应用程序直接将用户输入作为PHP代码执行,而没有进行充分的验证和过滤,攻击者可以通过提交恶意代码来执行任意操作。防范措施是使用合适的输入验证和过滤,例如使用白名单来限制允许的操作或使用安全的函数来处理用户输入。 2. 变量覆盖:如果应用程序在解析用户输入时,没有正确处理变量覆盖的情况,攻击者可以通过构造特殊的输入来覆盖应用程序中的变量,并执行恶意操作。防范措施是在处理用户输入之前,将其赋值给新的变量,并确保不会被覆盖已有的变量。 3. 文件包含漏洞:如果应用程序在包含文件时没有进行充分的验证和过滤,攻击者可以通过构造特殊的文件路径来包含恶意的PHP代码文件。防范措施是使用白名单来限制允许包含的文件路径,并对用户输入进行适当的过滤和验证。 4. 数据库查询注入:虽然不是直接的PHP代码注入,但数据库查询注入漏洞可能导致执行恶意的SQL语句,从而进一步执行PHP代码。防范措施是使用参数化查询或预处理语句,避免直接将用户输入拼接到SQL查询中。 总之,要防范PHP代码注入漏洞,开发者应该始终进行充分的输入验证和过滤,使用安全的函数和方法处理用户输入,避免直接执行或拼接用户输入作为代码执行。同时,定期更新和修复应用程序中使用的框架、库和组件,以确保使用的是最新的安全版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值