我是靠谱客的博主 大胆发夹,最近开发中收集的这篇文章主要介绍PHP弱类型的学习下面为学习过程中搜查的内容:总结:补充:MD5碰撞,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

PHP弱类型的学习

    • 主线
  • 下面为学习过程中搜查的内容:
    • 1.$_GET 变量
    • 2.ctype_alpha
    • 3.md5()函数
    • 4.json_decode函数
    • 5.intval()函数
    • 6.array_search函数
    • 7.strcmp()漏洞
  • 总结:
  • 补充:MD5碰撞

主线

https://www.cnblogs.com/Mrsm1th/p/6745532.html
https://www.freebuf.com/articles/web/129607.html
这两个博客很详细,下面为学习过程中第一个博客搜查的内容
建议看完第一个保留疑问然后再看第二个再做复习

下面为学习过程中搜查的内容:

1.$_GET 变量
2.ctype_alpha
3.md5()函数
4.json_decode函数
5.intval()函数
6.array_search函数
7.strcmp()漏洞

1.$_GET 变量

https://www.runoob.com/php/php-get.html
同时也证明了get参数是通过URL传递并且不太安全
我们可以通过在URL后添加:?内容来提交get参数

2.ctype_alpha

https://www.php.net/manual/zh/function.ctype-alpha.php
如果在字符串中,每个字符都是一个字母,那么就返回TRUE,反之则返回FALSE

3.md5()函数

https://www.w3school.com.cn/php/func_string_md5.asp
根据true跟flase调整加密方式(针对字符串)
可利用弱类型的特点进行绕过

4.json_decode函数

附加上key,value,=>和->的解释:
Array(0=>1,1=>2,2=>3,3=>4)
那么等号左边的就是数组的下标也叫索引也叫键(key),箭头指向的便是数组的值(value)。

->:https://blog.csdn.net/qq_38275944/article/details/75576963
->是成员访问符 =>是数组的赋值符号
(面向对象的引用)
json绕后需要学习js跟面向对象(超纲了!)

先抽象学习,不纠牛角尖

5.intval()函数

https://www.php.net/intval
用于base解码

6.array_search函数

https://www.w3school.com.cn/php/func_array_search.asp

7.strcmp()漏洞

https://blog.csdn.net/cherrie007/article/details/77473817
针对低版本的php

总结:

1.(1)= = = 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较

(2)== 在进行比较的时候,会先将字符串类型转化成相同,再比较

所以弱类型的利用需= =而不是===

2.字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。

(1)字符串开头会被转化为0
eg:“admin”==0

(2)合法数值开头
eg:“1admin”==1

(3)可做运算
eg: $ test=1+“2admin”;//$test=3(int)

补充:MD5碰撞

1.md5弱比较:(= =)
md5弱比较,为0e开头的会被识别为科学记数法,
结果均为0
0e开头的md5和原值:

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
240610708
0e462097431906509019562988736854
2120624
0e85776838554cc1775842c212686416

payload:

param1=s878926199a&param2=s155964671a

2.md5强比较:(= = =)
md5强比较,此时如果传入的两个参数不是字符串,而是数组,md5()函数无法解出其数值,而且不会报错,就会得到===强比较的值相等

payload

param1[]=1&param2[]=2

3.真实md5碰撞
待补充

最后

以上就是大胆发夹为你收集整理的PHP弱类型的学习下面为学习过程中搜查的内容:总结:补充:MD5碰撞的全部内容,希望文章能够帮你解决PHP弱类型的学习下面为学习过程中搜查的内容:总结:补充:MD5碰撞所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部