php特性
2016-04-22 01:00
489 查看
1、php散列函数比较:
php逻辑绕过:
比如:http://localhost/ctf.php?test=240610708
2、十六进制或者二进制绕过is_numeric:
3、各大CMS厂商的CMS存在的同一设计缺陷
先做一个小测试:
然后用burp去跑
payload是从00到ff
得到的结果是 20 2e 5b 5f 也就是 " " "." "[" "_"
除了_以外,空格 句号 方括号都能初始化my_var
结论: php在初始化接收key的时候 就把" " "." "[" 这三个含在超全局变量$_GET中的key的符号转成了"_"
md5('240610708') == md5('QNKCDZO'); md5('aabg7XSs') == md5('aabC9RqS'); sha1('aaroZmOk') == sha1('aaK1STfY'); sha1('aaO8zKZF') == sha1('aa3OFF9m'); '0010e2' == '1e3'; '0x1234Ab' == '1193131'; '0xABCdef' == ' 0xABCdef';
php逻辑绕过:
<?php $test=$_GET['test']; $test=md5($test); if($test=='0') { print "True!"; } else print "False!" ?>
比如:http://localhost/ctf.php?test=240610708
MD5 ("240610708") = 0e462097431906509019562988736854 MD5 ("QNKCDZO") = 0e830400451993494058024219903391 二者的计算结果均为0exxx,换成数字就是0*10的n次方(永远为0) 所以二者的结果换成数字都是0,所以相等。
2、十六进制或者二进制绕过is_numeric:
"0x"+binascii.hexlify(sql_payload)
3、各大CMS厂商的CMS存在的同一设计缺陷
先做一个小测试:
<?php foreach($_GET as $k=>$v){ $$k = $v; } if(isset($my_var)){ echo $num."\n"; } ?>
然后用burp去跑
GET /test.php?my%§c§var=x&num=§x§ HTTP/1.1
payload是从00到ff
得到的结果是 20 2e 5b 5f 也就是 " " "." "[" "_"
除了_以外,空格 句号 方括号都能初始化my_var
结论: php在初始化接收key的时候 就把" " "." "[" 这三个含在超全局变量$_GET中的key的符号转成了"_"
相关文章推荐
- win7下配置FTP服务
- 如何在本 987f 地预览php文件
- yii2-分页,Yii2实现带搜索的分页功能
- php生成酷炫的四个字符验证码
- 利用php输出不同的心形图案
- thinkPHP实现将excel导入到数据库中的方法
- thinkPHP3.1验证码的简单实现方法
- PHP简单获取及判断提交来源的方法
- php简单实现sql防注入的方法
- 浅析Yii2中GridView常见操作
- PHP使用反射机制实现查找类和方法的所在位置
- 浅析Yii2 GridView实现下拉搜索教程
- 浅析Yii2 GridView 日期格式化并实现日期可搜索教程
- 浅析Yii2 gridview实现批量删除教程
- php文件上传类
- php中traits的使用
- wemall3.4更新 升级tp3.2.3内核
- 利用yii2 gridview实现批量删除案例
- vsftp上传问题(错误533)解决
- php session跨页面值丢失问题