php代码审计 github,【代码小审计 PHP篇】Challenge 1

前言

专栏名为【代码小审计】,面向CTFer和代码审计新手。基于代码小片段进行讲解,包含但不限于php等语言。此次题目来自:Code-Audit-Challenges: php/challenge-2

Challenge<?php

show_source(__FILE__);

$flag = "xxxx";

if(isset($_GET['time'])){

if(!is_numeric($_GET['time'])){

echo 'The time must be number.';

}else if($_GET['time'] < 60 * 60 * 24 * 30 * 2){

echo 'This time is too short.';

}else if($_GET['time'] > 60 * 60 * 24 * 30 * 3){

echo 'This time is too long.';

}else{

sleep((int)$_GET['time']);

echo $flag;

}

echo '


';

}

?>

Solution>>> 60 * 60 * 24 * 30 * 2

5184000

>>> 60 * 60 * 24 * 30 * 3

7776000

>>> hex(5184000)

'0x4f1a00'

>>> hex(7776000)

'0x76a700'

要是传入普通的数字比如 5184001 ,固然能过掉前两个if判断,但sleep函数就要让你等到天荒地老了。

我们通过GET或者POST传入的参数,是作为字符串保存的。is_numeric()支持普通数字型字符串、科学记数法型字符串、部分支持十六进制0x型字符串。而强制类型转换int,不能正确转换的类型有十六进制型字符串、科学计数法型字符串(部分)。

测试代码:<?php

show_source(__FILE__);

$temp = $_GET['temp'];

echo (int)$temp;

?>

当传入参数为 ?temp=0x76a701 之类的十六进制型字符串,当传入参数如?temp=0e11之类的科学计数法型字符串,会输出0。当传入参数如?temp=4e11之类的科学计数法型字符串,会输出4

所以最后的payload如下:payload:?time=0x76a701

payload2:?time=0e11

小结

此题难度较小,主要考察了以下几个知识点:php弱类型

is_numeric()的特性

进制转换

若有其他想法/做法,欢迎各位留言评论,或在github开issue一起讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Github-Seay源代码审计系统是一种开源的、基于Web的代码审计工具,旨在帮助开发人员发现和解决安全漏洞,提高软件安全性。 该系统可以分析Java、C++、C#等多种编程语言的代码,并对其中的安全漏洞进行识别和标记,包括SQL注入、跨站脚本攻击等常见的Web安全问题。还可以自定义规则和规则集,根据自己的需求进行代码分析和漏洞检测。 Github-Seay源代码审计系统的特点包括: 1.开源免费。该系统完全开源,任何人都可以免费使用和修改源代码。 2.支持多种编程语言。可以对多种编程语言的代码进行分析,极大方便了企业的使用。 3.操作简便。系统的界面非常简单,使用起来也非常容易,减少了用户对于操作流程的了解和资质。 4.支持自定义规则。开发人员可以根据自己的需求和项目特点,自定义规则和模板,更好的定制化。 5.漏洞检测准确。该系统内置了丰富的漏洞检测规则,可以快速检测和识别代码中存在的安全问题。同时,Github-Seay持续更新漏洞库与规则,并推动维护人员第一时间修复其中的漏洞。 总的来说,Github-Seay源代码审计系统是一款非常优秀的开源安全审计工具,可以帮助开发人员协助侦测代码中的漏洞并提升软件安全性。 ### 回答2: Github-seay源代码审计系统是一套基于GitHub的源代码安全审计系统,它能够帮助用户以高效、快速、准确的方式对开源项目进行安全审计。该系统利用了GitHub上广泛的项目资源和社区力量,通过代码自动化分析和漏洞扫描等功能,对代码中的安全漏洞进行检测和修复,以帮助用户有效保护自己的项目。 该系统有以下几个主要特点:一是开源免费,且使用自由方便;二是在GitHub上进行,使得项目的审计和修复流程更加高效、方便;三是支持自动化分析和漏洞扫描,可以快速发现代码漏洞;四是利用了社区力量,形成了审核互助的积极氛围;五是提供了专业的代码审计服务,可以对用户提交的代码进行专业安全审计,以提高代码质量和安全性。 使用Github-seay源代码审计系统可以帮助用户更好地进行代码安全审计工作,尽快发现并修补代码中的漏洞,提高项目的安全性和稳定性。同时,该系统对于代码审计爱好者和安全研究人员也提供了学习和交流的平台,可以借此共同促进代码安全事业的发展。 ### 回答3: GitHub-Seay源代码审计系统是一款高效、可靠的源代码审计工具。 该系统能够对代码进行全面的检查和分析,探测出代码中的漏洞和安全隐患,提高代码的安全性和稳定性。它能够充分利用GitHub平台的资源,从源代码仓库中获取代码进行分析,并直接在GitHub上生成审计结果报告。 该系统采用模块化设计,包含语法分析器、符号执行器、数据流分析器、模式匹配器等多个模块。同时,该系统还支持多种编程语言,如Java、C++、JavaScript、Python等,能够适应不同语言的编码规范和特点。 该系统具有以下特点: 1. 高效可靠:系统采用自动化工具进行代码审计,检查范围广泛,及时反馈审计结果,有效减少人为因素干扰。 2. 多语言支持:该系统支持多种编程语言,适应不同语言的审计需求。 3. 模块化设计:该系统采用模块化设计,每个模块都具有独立的功能,协同工作有效提高代码审计效率。 4. 安全稳定:该系统能够发现和修复代码中的安全隐患,提高代码的安全性和稳定性。 总之,GitHub-Seay源代码审计系统是一款高效、可靠、安全、稳定的代码审计工具,适用于各类企业和组织的代码审计需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值