SQL注入和XSS攻击及加固

SQL注入

定义

通过把恶意SQL命令插入Web表单提交,最终达到欺骗服务器执行恶意的SQL命令。

如在用户名输入框输入绕过密码验证的SQL语句、内容输入框里输入内容的同时输入删除所有内容的SQL语句。

注入过程

判断可被注入?->数据库种类->猜表名->猜字段名->猜字段值

1.恶意的SQL语句绕过

绕过密码:SELECT * FROM 用户表 WHERE 用户名='aa' OR 1=1 # AND 密码='输入值',通过#将密码部分注释掉,即完成了绕过。

2.恶意的SQL语句删除内容

INSERT INTO 表名(标题、内容)VALUES('aa','cc');DELETE FROM 表明; #

#将原来的VALUES括号里的(‘aa’,‘bb’)的’)注释掉,将其转移到前面的某一部分,将DELTE释放出来/ 

加固措施:

1.程序上需要改进,使用PreparedStatement预编译语句代替Statement语句。将全部符号进行转义。

或者使用存储过程,或者引入Spring框架引入一个commons-lang-2.5.jar

2.网络安全狗:防木马、防SQL注入

3.网络拓扑里使用WEB应用防火墙

XSS注入

跨站脚本攻击,是一种WEB应用中的计算机案例漏洞,通过恶意的HTML脚本配合JavaScripte脚本进行攻击。

如在内容框里输入

<script>
    for(var i=0;i<10000;i++){
         alert("我希望你可以真正疼我");
    }
</script>

实现不断的弹窗。

在上方代码框里location href="http://www.baidu.com"就可进行恶意网站转向。

输入var objshell=new ActiveXobject("xx.shell");objshell.Run("mm.exe");即可打开服务器的可执行文件,如病毒、木马等,进行攻击的实现。

也可向服务器写文件

XSS具有很大的危害:

盗取账号、盗取资料、非法转账、网站挂马等。

加固时可通过代码的进行加固,对恶意输入的过滤。

猜你喜欢

转载自blog.csdn.net/qq_37865996/article/details/84953046
今日推荐