·PHP $_SERVER["PHP_SELF"]变量利用
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
当黑客使用跨站攻击时,$_SERVER["PHP_SELF"]服务器变量也会被植入脚本。原因就是跨站脚本是附在执行文件的路径后面的。
当在test.php中提交表单到本页的时候,我们可以访问 http://www.xxx.org/test.php/%22><script>alert(test);</script>
此时页面中的表单提交会写成:
<form action="test.php/"><script>alert(test);</script> method="post">
·strip_tags函数
- <!--?php
- <input name="subject" type="text" value="<?php echo strip_tags($row['subject']);?-->" size="60" /> ?>
现在假如我们在文本框中输入 v" οnmοuseοver="alert();
刚才的代码就可以组成如下所示:
<input type="text" value="v" οnmοuseοver="alert();">
·命令注入攻击和eval注入攻击
(1)尽量不要执行外部的应用程序或命令。
(2)使用自定义函数或函数库来替代外部程序或命令的功能。
(3)使用escapeshellarg函数来处理命令的参数。
(4)使用safe_mode_exec_dir来指定可执行的文件路径。
(5)事先列出可以提供给 system、eval 等函数的参数。
其它:
- 命令注入攻击(Command Injection)
- eval注入攻击(Eval Injection)
- 客户端脚本攻击(Script Insertion)
- 跨网站脚本攻击(Cross Site Scripting,XSS)
- SQL注入攻击(SQL injection)
- 跨网站请求伪造攻击(Cross Site Request Forgeries,CSRF)
- Session会话劫持攻击(Session Hijacking)
- Session固定攻击(Session Fixation)
- HTTP相应拆分攻击(HTTP Response Splitting)
- 文件上传攻击(File Upload Attack)
- 目录穿越漏洞(Directory Traversal)
- 远程文件包含攻击(Remote Inclusion)
- 动态函数注入攻击(Dynamic Variable Evaluation)
- URL攻击(URL attack)
- 表单提交欺骗攻击(Spoofed Form Submissions)
- HTTP请求欺骗攻击(Spoofed HTTP Requests)