常见的网站攻击方式(基础)

本文介绍了SQL注入的基础概念及其常见错误,包括未对表单提交内容进行转义、GET请求URL参数的安全处理以及如何防范XXS攻击。文章还特别强调了在实际应用中使用Acunetix软件进行测试学习的重要性。
摘要由CSDN通过智能技术生成

SQL注入的原理就是通过改变连接数据库的sql语句,改变对应的语句结构,完成我们期望之外的动作.所以在处理用户输入的内容的时候,无论是什么数据,都需要先判断其合法性.可用性.

常见的错误及防范方式简介:

1.未对表单提交的内容进行转义引起的错误:

      处理表单提交的用户输入的内容的时候,需要对接收到的内容进行转义的操作,可以使用PHP中内置的函数: addslashes() 或者 mysql_real_escape_string()进行操作.但是在php的手册中的建议是尽量的使用mysql内置的处理转义字符的函数.具体原因,在以后的学习中留意.   这种情况的主要问题就是通过 ' -- # 等sql语句中的关键字改变sql语句的结构.

 如:  "select * from admin where admin_name = 'admin'";    进行注入的话在表单内输入:  ' or 1 or '  或者 正确的用户名+#

完成后的sql语句变成 : "select * from admin where admin_name='' or 1 or '' ";   取出了所有的数据.甚至:

在这里后面添加一个删除的语句等等....  但是上面提到的addslashes()  和 mysql_real_eacape_string() 对转义字符存在漏洞:

有时,一些防注入的过滤函数中也存在着漏洞,如PHP中的addslash,以及MYSQL服务器中mysql_real_escape_string()函数漏洞。这种漏洞允许一个攻击者根据错误的统一字符编码执行一次成功的SQL注入式攻击,例如:

输入$name=41�'or sleep(10.10)=0 limit 1#

当使用addslashes($name)

//SQL输出可能为: 

"SELECT COUNT(*) AS total FROM users WHERE `name` LIKE 'A¿\\\' or sleep(10.10)=0 limit 1#%';"

其原因是addslash对于字符�'的漏洞。该漏洞最早2006年被国外用来讨论数据库字符集设为GBK时,0xbf27本身不是一个有效的GBK字符,但经过  addslashes()  转换后变为0xbf5c27,前面的0xbf5c是个有效的GBK字符,所以0xbf5c27会被当作一个字符0xbf5c和一个单引号来处理,结果漏洞就触发了。


2.通过GET方式传递的URL地址,接收时的转义:

在执行某些删除的操作时,我们通过URL地址传输的方式将要删除的对应的 ID 传递过去,在这种情况下,我们一定要对接收到的数值进行转义的操作,  这里接收到的是ID值,不能是SQL语句,所以在对应的接收的语句后面使用 "+0"进行转义的操作.防止恶意的删除所有数据的情况


3.XXS攻击:

就是Cross site script ,就是利用js 或者 html 代码提交给服务器,  这些提交的内容如果展示在网站的页面上将会导致很多问题.

防范的方式也是同上,对数据进行转义



以上三种都很基础,最好的经验还是在实践中学习,可以使用Acunetix  大牛软件进行测试学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值