PHP中GPC绕过的一些总结 电脑资料 .pdfVIP

PHP中GPC绕过的一些总结 电脑资料 .pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PHP中GPC绕过的一些总结电脑资料

lib3rt3

邪恶八进制

PS:PHP中绕过GPC的情况有很多,本文仅仅是了一些比拟常见的,而

且写的很浅(因为本人水平有限),欢送大家积极拍砖:)

ryat[at]wolvez

.wolvez

xx-10-18

1.通过数据库(文本)中转

通过数据库中转:

(注意存入数据库和select出的数据)

用户输入===gpc\addslashes()==========数据库=========执行

sql语句\include\写入缓存文件

insert\updateselect

这个问题是程序员容易忽略的,往往只是依靠gpc或addslashes函数

对用户直接输入的数据进行处理,这样数据中的等都会被\转义,这

样就能正确的执行sql语句,有效防止注入攻击了,

通过文本中转:

用户输入===gpc\addslashes()===写入文本文件===include===再

次写入文本文件\执行sql语句

这个和通过数据库中转大致是一样的,对于写文件的操作如果处理不

当是有可能被攻击者直接拿shell的,我们来看看php168的一个代码

片段:

Copycode

functionloginlogs($username,$password){

global$timestamp,$onlineip;

$logdb[]=$username\t$password\t$timestamp\t$onlineip;

@include(PHP168PATH.cache/adminloginlogs.php);

$writefile=

$jj=0;

foreach($logdbAS$key=$value){

$jj++;

$writefile.=\$logdb[]=\$value\;\r\n;

if($jj200){

break;

}

}

writefile(PHP168PATH.cache/adminloginlogs.php,$writefile);

}

php168在后台时如果输入的用户名或密码有误就会执行这个

loginlogs函数把者的信息记录在adminloginlogs.php,如果用户输

入的$username的数据是“;eval($POST[cmd]);//”,前面的被闭合

了,成功的写入了shell,

2.通过编码

UTF-7(+ACc-

)===gpc\addslashes()===mbconvertencoding()===UTF-8()

这个问题的具体例子可见:superhei.blogbus./logs/4255503.html

0xbf27===gpc\addslashes()===0xbf5c27===执行sql语句(数据

库编码支持多字节)

PHP里的函数大多是把字符串作为单字节进行处理的,那么如果数据库

编码支持多字节呢,我们可以利用这个特性引入,而这里,gpc不但

没起作用还帮了我们的忙:)

详见:shiflett/blog/xx/jan/addslashes-versus-mysql-real-

escape-string

用户输入(经过urlencode\rawurlencode\base64encode等函数处

理)===gpc\addslashes()

===urldecode\rawurldecode\base64decode等函数===执行SQL语句

\include

通过二次编码绕过gpc\addslashes,比方的URL编码二次编码

%25%27。

3.一些函数的错误处理

看看下面的函数处理的字符串:

substr($GET[a],1);

假设输入的$GET[a]为haha,经过gpc\addslashes()会变为

\haha,再经过substr处理后又变回了haha.

处理字符串的函数有很多,往往程序员的一个不注意就能给我们带来

很多有意思的利用:)

4.字符串和数组

看看下面的代码:

$a=$GET[a];

echo$a[1];

输入$GET[a]为haha,经过gpc\addslashes()会变为\haha,看看

手册里对字符串的一段描述:

字符串中的字符可以通过在字符串之后用花括号指定所要字符从零开

始的偏移量来访问和修改

这里也可以用方括号替代花括号(这是为了兼容较早的PHP版本,其

实就是把字符串当数组处理的),有了这个特性我们能做很多事啊,

比方这里

文档评论(0)

175****9697 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档