亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

由php offset特征造成的繞過漏洞

標簽:
Android

本文和大家分享的主要是由php offset特征造成的绕过漏洞相关内容,一起来看看吧,希望对大家有所帮助。

  php中的字符串存在一个非常有趣的特性,php中的字符串也可以像数组一样进行取值。

  $test = "hello world";echo $test[0];

  最后的结果就是h。

  但是上述的这种特性有时会有意想不到的效果,看下面这段代码

  $mystr = "hello world";echo $mystr["pass"];

  上述的代码的输出结果是h.这是为什么呢?其实很简单,和很多其他的语言一样,字符串在php中也像数组一样可以使用下标取值。 $mystr["pass"] 中pass会被进行隐性类型转换为0,这样$mystr[0] 的输出结果就是首字母h.

  同样地,如果尝试如下的代码:

  $mystr = "hello world";echo $mystr["1pass"];

  输出结果就是e.因为1pass会被隐性类型转换为1,$mystr[1]的输出结果就是第二个字母e.

  字符特性造成的漏洞

  下面这段代码是在在phpspy2006中用于判断登录时所使用的代码。

  $admin['check'] = "1";

  $admin['pass']  = "angel";

  ......if($admin['check'] == "1") {

  ....

  }

  这样的验证逻辑如果利用上述的特性就很容易地就可以被绕过。$admin没有被初始定义为数组类型,那么当我们用字符串提交时phpsyp.php?admin=1abc时,php会取字符串1xxx的第一位,成功绕过if的条件判断。

  上面那段代码是一个代码片段,接下来的这段代码是一段完整的逻辑代码,来自于php4fun中第5题,比较有意思。

  

原文链接:http://www.apkbus.com/blog-907513-68237.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消