67,738
社区成员
php asp aspx 权重0-1即可 有懂的可以交流一下
手工漏洞检测都可以收shell
PHP执行系统命令可以使用以下几个函数:system、exec、passthru、“、shell_exec、popen、proc_open、pcntl_exec
我们通过在全部程序文件中搜索这些函数,确定函数的参数是否会因为外部提交而改变,检查这些参数是否有经过安全处理。
防范方法:
1.使用自定义函数或函数库来替代外部命令的功能
2.使用escapeshellarg函数来处理命令参数
3.使用safe_mode_exec_dir指定可执行文件的路径
2.跨站脚本
反 射型跨站常常出现在用户提交的变量接受以后经过处理,直接输出显示给客户端;存储型跨站常常出现在用户提交的变量接受过经过处理后,存储在数据库里,然后 又从数据库中读取到此信息输出到客户端。输出函数经常使用:echo、print、printf、vprintf、< %=$test%>
对于反射型跨站,因为是立即输出显示给客户端,所以应该在当前的php页面检查变量被客户提交之后有无立即显示,在这个过程中变量是否有经过安全检查。
对于存储型跨站,检查变量在输入后入库,又输出显示的这个过程中,变量是否有经过安全检查。
防范方法:
1.如果输入数据只包含字母和数字,那么任何特殊字符都应当阻止
2.对输入的数据经行严格匹配,比如邮件格式,用户名只包含英文或者中文、下划线、连字符
3.对输出进行HTML编码,编码规范
< < > >
( (
) )
# #
& &
” “
‘ ‘
` %60
3.文件包含
PHP可能出现文件包含的函数:include、include_once、require、require_once、show_source、highlight_file、readfile、file_get_contents、fopen、file
防范方法:
1.对输入数据进行精确匹配,比如根据变量的值确定语言en.php、cn.php,那么这两个文件放在同一个目录下’language/’.$_POST[‘lang’].’.php’,那么检查提交的数据是否是en或者cn是最严格的,检查是否只包含字母也不错
2.通过过滤参数中的/、..等字符
4.代码注入
PHP可能出现代码注入的函数:eval、preg_replace+/e、assert、call_user_func、call_user_func_array、create_function
查找程序中程序中使用这些函数的地方,检查提交变量是否用户可控,有无做输入验证
防范方法:
1.输入数据精确匹配
2.白名单方式过滤可执行的函数
5.SQL注入
SQL注入因为要操作数据库,所以一般会查找SQL语句关键字:insert、delete、update、select,查看传递的变量参数是否用户可控制,有无做过安全处理
防范方法:
使用参数化查询
6.XPath注入
Xpath用于操作xml,我们通过搜索xpath来分析,提交给xpath函数的参数是否有经过安全处理
防范方法:
对于数据进行精确匹配
7.HTTP响应拆分
PHP中可导致HTTP响应拆分的情况为:使用header函数和使用$_SERVER变量。注意PHP的高版本会禁止HTTP表头中出现换行字符,这类可以直接跳过本测试。
很不错的内容,干货满满,已支持师傅,期望师傅能输出更多干货,并强烈给师傅五星好评
另外,如果可以的话,期待师傅能给正在参加年度博客之星评选的我一个五星好评,您的五星好评都是对我的支持与鼓励(帖子中有大额红包惊喜哟,不要忘记评了五星后领红包哟)
⭐ ⭐ ⭐ ⭐ ⭐ 博主信息⭐ ⭐ ⭐ ⭐ ⭐
博主:橙留香Park
本人原力等级:5
链接直达:https://bbs.csdn.net/topics/611387568
微信直达:Blue_Team_Park
⭐ ⭐ ⭐ ⭐ ⭐ 五星必回!!!⭐ ⭐ ⭐ ⭐ ⭐
点赞五星好评回馈小福利:抽奖赠书 | 总价值200元,书由君自行挑选(从此页面参与抽奖的同学,只需五星好评后,参与抽奖)