WEB攻防基础|PHP|过滤函数intval()绕过原理及方法

这篇具有很好参考价值的文章主要介绍了WEB攻防基础|PHP|过滤函数intval()绕过原理及方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 intval()函数:

用于获取变量的整数值;可使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。

注意:intval() 不能用于 object,否则会产生NOTICE 错误并返回 1。

语法结构:

int intval ( mixed $var [, int $base = 10 ] )

$var,需要被转换成integer的值;$base,决定转化时可所使用的进制。

如果$base值为0,通过检测传进的$var格式来决定使用的进制;

$var字符串前缀"0x"代表16进制,"0"代表8进制,默认为10进制;

绕过方法思路总结:

目录

 intval()函数:

绕过方法思路总结:

一、进制类型转换:

二、弱比较(a==b),可以给a、b两个参数传入数组,使弱比较为true:

三、增加小数位:

四、转换字符串:

五、取反:

六、运用算数运算符:


一、进制类型转换:

#实例:23的16进制:0x17,8进制为027

if(23 != $_GET['i']){
    if(23 == intval($_GET['i'],0)){
        echo '漏洞利用成功';
    }
}else{
    echo 'NONONO';
}

intval函数绕过,WEB攻防基础,php,开发语言,网络安全,安全,web安全intval函数绕过,WEB攻防基础,php,开发语言,网络安全,安全,web安全

//绕过思路:当某个数字被过滤时,可以使用它的8进制/16进制来绕过;

二、弱比较(a==b),可以给a、b两个参数传入数组,使弱比较为true:

if($_GET['a']!=$_GET['b']) {
    if (intval($_GET['a']) == intval($_GET['b'])) {
        echo '漏洞利用成功';
    }
}else
    echo 'NONONO';

intval函数绕过,WEB攻防基础,php,开发语言,网络安全,安全,web安全

&&因为使用intval()转换数组类型时,不关心数组中的内容,只判断数组中有没有元素;

所以,当数组中有值时,返回值为1;1==1,漏洞利用成功。

//当网址处输入?i[]=  时后端接收的值为1,因为数组中会带有一个元素即空字符串。

三、增加小数位:

#例子与上题相同,不同绕过方法:

if($_GET['a']!=$_GET['b']) {
    if (intval($_GET['a']) == intval($_GET['b'])) {
        echo '漏洞利用成功';
    }
}else
    echo 'NONONO';

intval函数绕过,WEB攻防基础,php,开发语言,网络安全,安全,web安全

//因为 intval() 转换小数类型时,只返回个位数,不遵循四舍五入的原则。

&&绕过思路:当某个数字被过滤时,可以给它增加小数位来绕过。

四、转换字符串:

intval()函数转换字符串时,会判断字符串是否以数字开头;

//当字符串以数字开头,就会返回1个或多个连续的数字;

//当字符串以字母开头,就会返回0

//0 或 0x 开头也只会当做普通字符串处理;

//双引号对转换结果没有影响,但对下面这个示例会有影响,当我们传入?i=0时失败。intval函数绕过,WEB攻防基础,php,开发语言,网络安全,安全,web安全

但当我们传入?i="0"、?i="1"、?i='0',?i='1'等值时;成功利用漏洞。intval函数绕过,WEB攻防基础,php,开发语言,网络安全,安全,web安全

#转换字符串例子:

$t = '0';
if($t!==$_GET['i']) {
    if($t == intval($_GET['i'])) {
        echo '漏洞利用成功';
    }
}else
    echo 'NONONO';
?>

intval函数绕过,WEB攻防基础,php,开发语言,网络安全,安全,web安全

五、取反:

//intval()支持一些特殊符号,比如 ~ 取反;

    intval(~10):-11;intval(~1):-2;intval(~~10):10;

    &&绕过思路:当某个数字被过滤时,可以两次取反来绕过;

var_dump(intval(~10));
var_dump(intval(~~10));

返回值:

int(-11)
int(10)

六、运用算数运算符:

//intval()转换包含算术运算符时,会先运算,在对运算结果进行转换;

    intval(5*5):25;

    &&绕过思路:当某个数字被绕过时,可以使用算数运算符绕过;文章来源地址https://www.toymoban.com/news/detail-792150.html

到了这里,关于WEB攻防基础|PHP|过滤函数intval()绕过原理及方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

    在进行渗透测试过程中,在一些功能点进行参数注入或者枚举爆破等过程中,会出现参数进行加密的情况,但是我们输入参数并不是加密状态,即便测试点存在漏洞也不可能测试成功,这时候便需要将所提交参数进行加密后在进行注入,针对JS应用我们可以采用JS断点调试的方

    2024年02月10日
    浏览(37)
  • Web 攻防之业务安全:验证码绕过测试.(修改数据包中 res_code 的值 实现绕过.)

    业务安全是指保护业务系统免受安全威胁的措施或手段。 广义 的业务安全应包括业务运行的 软硬件平台 (操作系统、数据库,中间件等)、 业务系统自身 (软件或设备)、 业务所提供的服务安全 ; 狭义 的业务安全指 业务系统自有的软件与服务的安全 。 验证码绕过测试

    2023年04月14日
    浏览(57)
  • 第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞

    1.TP框架-开发-配置架构路由MVC模型 参考:https://www.kancloud.cn/manual/thinkphp5_1 配置架构-导入使用 路由访问-URL访问 数据库操作-应用对象 文件上传操作-应用对象 前端页面渲染-MVC模型 1.TP框架-安全-不安全写法版本过滤绕过 1.内置代码写法 不合要求的代码写法-ThinkPHP5-自写 2.框架

    2024年04月25日
    浏览(61)
  • 深入理解PHP+Redis实现布隆过滤器(亿级大数据处理和黑客攻防必备)

    英文名称Bloom Filter,用于判断一个元素是否在一个大数据集合中,如果检测到存在则有可能存在,如果不存在则一定不存在。 Redis官网对于布隆过滤器的说明:https://redis.io/docs/data-types/probabilistic/bloom-filter/ 防止缓存穿透:用于快速判断某个商品数据是否存在于缓存中,如果存

    2024年04月09日
    浏览(45)
  • Web 攻防之业务安全:Response状态值修改测试(修改验证码返回值 绕过限制.)

    业务安全是指保护业务系统免受安全威胁的措施或手段。 广义 的业务安全应包括业务运行的 软硬件平台 (操作系统、数据库,中间件等)、 业务系统自身 (软件或设备)、 业务所提供的服务安全 ; 狭义 的业务安全指 业务系统自有的软件与服务的安全 。 Response状态值修

    2023年04月16日
    浏览(123)
  • [CTF/网络安全] 攻防世界 file_include 解题详析(php伪协议+convert转换过滤器)

    题目描述:怎么读取文件呢? 思路: 由代码审计可知,可通过filename参数构造POC,来读取check.php POC的构造涉及PHP伪协议,参考链接: 文件包含 | PHP伪协议实战 POC: 回显如下: 猜测被过滤,怎么办呢? 该题涉及到 convert转换过滤器 常见的convert转换过滤器有这两种:

    2024年02月07日
    浏览(67)
  • 攻防世界-WEB-Web_php_include

    打开靶机 通过代码审计可以知道,存在文件包含漏洞,并且对伪协议php://进行了过滤。 发现根目录下存在phpinfo 观察phpinfo发现如下: 这两个都为on 所以我们就可以使用data://伪协议 payload如下: 访问新连接 上面的payload就可以实现命令执行了 找了半天发现flag在fl4gisisish3r3.p

    2024年02月09日
    浏览(40)
  • 攻防世界-web篇(php_rce)详解

    每日一题,今天我们来攻防世界web篇(php_rce) 目录 1、利用system函数远程命令执行 2、查找文件目录 3、进入flag目录 4、查看flag文件拿到flag 首先打开题目:  这里我们可以看到打开后是一个ThinkPHP V5的界面,由此我们可以判断这是一个使用TinkPHP框架开发的,接下来我们由长期的

    2024年02月15日
    浏览(49)
  • CTF笔记:PHP函数is_numeric()绕过

    在做CTF过程中遇到的is_numeric()函数,作用是判断输入是不是数字或数字字符串。 思路1:数值-非数值 原题是[极客大挑战 2019]BuyFlag,判断代码如下: 密码是404,但是不能输入数字,所以要考虑绕过的问题,这里记录解题思路。 上网搜了一下,可以借助url编码中的空字符,例

    2024年02月08日
    浏览(38)
  • SSTI模板注入-中括号、args、下划线、单双引号、os、request、花括号被过滤绕过(ctfshow web入门369)

    由于request被过滤,我们就不能再使用传参的方式进行传递命令以及被过滤的,下划线中括号花括号都被过滤,这样的话我们就只能使用{%%}来进行设置变量以及拼接方法的方式来进行利用SSTI漏洞。 本章内容,咱们就先研究怎么做出ctfshow web入门369这道题目,然后再讲解

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包