web ctf php,CTF-WEB-PHP相关利用技术简单总结

[PHP相关]

基础知识补漏

php是一种弱类型语言,它支持的类型有:

boolean,integer,float,string,array,object,callable,resource,NULL

类型之间转换可能会发生一些有趣的事情,总结如下:

转化成boolean

""(空字符串),"0"(字符串零),0(整型零),0.0(浮点零),array()(空数组),NULL,$a(尚未被赋值的变量)都会被认为是false。

任何资源,NAN,-1,都被认为是true。

字符串转化成数值

如果该字符串没有包含 '.','e' 或 'E' 并且其数字值在整型的范围之内(由 PHP_INT_MAX 所定义),该字符串将被当成 integer 来取值,其它所有情况下都被作为 float 来取值。

该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成。

"==="和"!=="即strict比较符,只有在类型相同时才相等。

"=="和"!="即non-strict比较符。如果比较的两者类型不同,会在类型转换后进行比较:字符串在与数字比较前会自动转换为数字;两个字符串比较,如果两个都是数字形式,则同时转换为数字进行比较。

var_dump(0 == "a"); // 0 == 0 -> true

var_dump("1" == "01"); // 1 == 1 -> true

var_dump("10" == "1e1"); // 10 == 10 -> true

var_dump(100 == "1e2"); // 100 == 100 -> true

var_dump("0e123456789012345678901234567890"==="0"); //false

var_dump("0e123456789012345678901234567890"=="0"); //true

?>

这里还需要进一步学习

有的协议只在php中得到支持,故称伪协议。

php.ini中两个与之相关的设置:allow_url_fopen和allow_url_include

allow_url_fopen:默认值是ON,允许url里的封装协议访问文件

allow_url_include:默认值是OFF,不允许包含url里的封装协议包含文件

常用,任意文件读取,双OFF时可以使用。

命令格式:php://filter/[read/write]=string.[rot13/strip_tags/…..]/resource=xxx

php://input

strcmp()

在两个字符串相等的时候返回0,该函数不能处理数组,如果传入了数组参数会返回NULL。

根据之前的类型比较,如果比较时使用了strcmp(a,b) == 0,那么(NULL == 0)是true,所以传入数组可以绕过该函数。

防御方法是使用 === 进行严格比较。

%00截断

php版本小于等于5.2.9和magic_quotes_gpc关闭,两个条件都必须满足才能截断。

影响的函数

include,include_once,require,require_once

file_exists

ereg,eregi(正则表达式匹配)

file_get_contents

不处理截断的函数

strlen

md5()

前置知识:php变量类型

不能处理数组,md5(数组)会返回 null

$a[]=1;

echo md5($a);

?>

Warning: md5() expects parameter 1 to be string, array given in /tmp/45044302eb92d3bb0c8d1bed302358f3989559700dc1a118facbc80ef7f155a1/main.php on line 7

0e开头碰撞:根据比较机制的缺陷,使md5值都是0e开头即可绕过md5($a) == md5($b)这样的条件判断

0eeeb26bc5f6ba1cae0c5885c8f82dc9 aaaab6

0e08a88f2f1bad773e9baf987510c4c1 baaacU

0ef2db375cda51db88635099373077f6 caaaff

0e72bf9b806143116a4fda738b4fe6ef daaaeL

0e253b99812c188ec8358a29f601277e eaaagQ

0ebd40c0cd91aabcc7b321cd6b7e8c4d faaaaf

0ea081906fea694a27c77d902b0930bc gaaaaG

0e662ef3889bd06088261009539d0b98 haaatL

0e3ad9d5bfcf96fbf68d32f8d8020791 iaaadW

0e3121f7efc12a4c8a0b19419c08183c jaaagn

0e33d9ed1175b71a0c36c8092207aa2e kaaaiX

0e5b513ff48c0c38e9c80614e40e583f laaaaR

0eb4ff471d1daaad0abf3d0f25890f6a maaafG

0e8615bd2dad98219fe995f3f34fef20 naaagy

0ee7e45c8b49a711cfbf711a2ab8f362 oaaakE

0e45f47006f1ae77af97a2a66e63ca8b paaafB

0ed564aef50820bd0d19aeb0c54dafea qaaagb

0eb09dfaf39ac27929e40d7d040fad06 raaabY

0eaa701a96dd3c7eaf8db8b5dd14d871 saaadK

0ef8bbd0fd3a354d0c58968ba7a88347 taaac4

0e7f13153ac56df8cd77e2af28d62fe2 uaaaax

0e5d6c8a222b1b19657ed52e6463c0fc vaaaiK

0e2b644762da6a8c5ed726316ccfc8b5 waaacI

0e44238a7664e6316501f2d589dc8631 xaaadE

0ee4bf6dcf69bced96b0af0ffc8fc542 yaaabl

0e4ab7c28649f4690011ce5fd14e8eb6 zaaatC

0ee1abcce5648ea8b4a8d265f09b24e6 Aaaact

0ec8c912ef997ac3e8ceb23d24c9e8f9 Baaaa9

0e421d02abfd0c8eae7e18451b8a6a08 CaaadI

0e3d90d73011c2551feba94e2cc8a3cc Daaack

0e4d796e0c13cc03edbb16a5a41fe04a EaaalV

0e34068055d34f3415ae5062c3363c32 FaaaoA

0e74a38eda13d433c42f125fe8d5ab83 GaaabG

0ecca6beb91b292fe3f80903f3686ab1 HaaaaN

0e6a5d1c5785cf7d16235e1a539c352b Iaaaal

0e072722ff0b52b4d8efce5838280fda JaaacP

0e7f073b9701f3db27e83312b41a562c Kaaakn

0ec8c8fd26aa23c5b5933148795c3b3d LaaatJ

0e47adc73495a965a5114d5e16b70c78 MaaaaM

0edf7fe4e0148a52401b1951e529ae41 Naaaea

0e94f0f84773bbd691dec8b61c0c4f67 Oaaae2

0e79b18f75647ff7d3559beeac04c857 Paaaa8

0e91e2497a84c108b9dd3f58c62e17cf Qaaadr

0e312e1d7354272a0f7af98e3f12beee Raaaa4

0e57201859c078cebf65fc4da841b7b0 Saaaea

0e7faba6001cb0b8a930b128cea1bd28 TaaaaH

0eaeb5168e0c16442a83dd2059bd77ae Uaaaif

0efea2555a6bdb087a88d32b7b620cfe Vaaagr

0ecac74e8afde8bbf370baca232400d2 Waaabo

0ef74044fa1a333241bd00751a8d5c6b Xaaaan

0e6d0acea3fb18c498b09ad3d04bdd0c Yaaab4

0ed7f23534604153a96387f90cef213f ZaaabC

0ec92f8847011379ce0c1c95d3d52677 0aaaga

0e644c2d05e6d81ff04194145d497c74 1aaabw

0e93fcef5a44bbc455bb54011b8c6b2f 2aaady

0edfb3f3a9ab8d5ae227861e9a44b3e7 3aaacO

0eabd2eeb3b01d5b516a4e5bc51d6a43 4aaaci

0e1e066173172fd0eb55ac92ee4d9254 5aaabd

0e98a9e89b8bf419701c85ec8183247c 6aaabp

0e17990dcefa714d524be3fcab79491c 7aaaad

0e5a9f50d8369a2bbbab1797752111f1 8aaalf

0e2eb438bed241fdb0f6fa0d93ac86c5 9aaaaE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值