做题小结-WEB
hash碰撞
-
什么是哈希碰撞
哈希(hash),就是将不同的输入映射成独一无二的、固定长度的值(又称"哈希值")。它是最常见的软件运算之一。如果不同的输入得到了同一个哈希值,就发生了"哈希碰撞"。如果两个不同的用户,得到了同样的 token,就发生了哈希碰撞。服务器将把这两个用户视为同一个人,这意味着,用户 B 可以读取和更改用户 A 的信息。
-
怎样防止哈希碰撞
扩大hash值的取值空间,16个二进制位的哈希值,产生碰撞的可能性是 65536 分之一。也就是说,如果有65537个用户,就一定会产生碰撞。哈希值的长度扩大到32个二进制位,碰撞的可能性就会下降到 4,294,967,296 分之一。更长的哈希值意味着更大的存储空间、更多的计算,将影响性能和成本。
-
哈希碰撞的概率
- 取值空间的大小(即哈希值的长度)
- 整个生命周期中,哈希值的计算次数
md5函数漏洞
$str1 = $_GET['str1'];`
`$str2 = $_GET['str2'];`
`if (md5($str1) == md5($str2)){`
`die('OK'); }
php弱类型比较产生的漏洞
-
想要满足这个判断只需要构造出MD5值为0e开头的字符串,这样的话弱类型比较会认为是科学技术法,0的多少次方都是0,因此可以绕过
md5值以0e开头的字符串:
- QNKCDZO
- 240610708
- s878926199a
- s155964671a
- s214587387a
md5和双md5都是以0e开头的字符串:
- CbDLytmyGm2xQyaLNhWn
- 770hQgrBOjrcqftrlaZk
- 7r4lGXCH2Ksu2JNT3BYM
有关proc目录的知识
https://www.cnblogs.com/liushui-sky/p/9354536.html
SQL注入总结
1.利用到的mysql函数
-
extractvalue()
语法:extractvalue(xml文档,xml路径)
原理:函数第二个参数 xml路径是可操作的地方,xml路径是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
-
updatexml()
语法:updatexml(目标xml文档,xml路径,更新的内容)
原理:和上面一致,要是xml路径报错就会出现我们需要查询的内容
报错注入
四种报错注入:Insert注入、Update注入、Delete注入、Limit注入
Insert注入
对用户注册这种输入框进行注入,sql语句执行后会报错,显示要查询的内容
Update注入
对修改密码这类的输入框
Delete注入
对信息删除类型输入框