您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > SQL注入简介及攻击过程
SQLInjection内容概要‣SQL注入的定义及历史‣SQL注入产生的原因‣SQL注入的分类‣SQL注入的过程‣SQL注入的防御‣SQL注入实例什么是SQL注入SQL注入是这样一种漏洞:应用程序在向后台数据库传递SQL查询时,如果为攻击者提供了影响该查询的能力,就会引发SQL注入。FirstBlood:在1998年的著名黑客杂志《Phrack》第54期,一位叫rfp的黑客发表了第一篇题为“NTWebTechnologyVulnerabilities”的文章。2012年,Barclaycard的一个代表声称97%的数据泄露都是由SQL注入引起的。2011年年尾和2012年年首,在不到一个月的时间里,超过百万的网页遭受到SQL注入攻击。2008年见证了由于SQL注入引起的经济失调,甚至在2010年秋季,联合国官方网站也遭受SQL注入攻击。PHP:mysql_connect(“localhost”,”username”,”password”);mysql_select_db([“USERS”]);$query=“SELECTidFROMuserWHEREusername=‘$_POST[“username”]’”.”ANDpassword=‘$_POST[“password”]’”;$result=mysql_query($query);if($result)header(“Location:admin.php”);elsedie(“Incorrectusernameorpassword,pleasetyragain.”);SQL注入产生的原因1、输入admin123SQL:SELECTidFROMuserWHEREusername=‘admin’ANDpassword=‘123’;2、输入‘or1=1--SQL:SELECTidFROMuserWHEREusername=‘’or1=1--’ANDpassword=‘’;SQL注入产生的原因手工注入、工具注入GET注入:=123POST注入:formmethod=postaction=product.php/formCOOKIE注入:javascript:alert(document.cookie=id=+escape(“123));盲注、旁注、TimingAttackSQL注入的分类所谓“盲注”,就是在服务器没有错误回显时完成的注入攻击。最常见的盲注验证方法是,构造简单的条件语句,根据返回页面是否发生变化,来判断SQL语句是否得到执行。盲注旁注是,在字面上解释就是-从旁注入,利用同一主机上面不同网站的漏洞得到webshell,从而利用主机上的程序或者是服务所暴露的用户所在的物理路径进行入侵。旁注2011年3月27日,一个名叫TinKode的黑客在著名的安全邮件列表FullDisclosure上公布了一些他入侵mysql.com所获得的细节。TimingAttackMySQL中,有一个BENCHMARK()函数,他是用于测试函数性能的。他有两个参数:BENCHMARK(count,expr)利用BENCHMARK()函数,可以让同一个函数执行若干次,使得结果返回的时间比平时要长;通过时间长短的变化,可以判断出注入语句是否执行成功。例如:id=1170UNIONSELECGTIF(SUBSTRING(current,1,1)=CHAR(119),BENCHMARK(500000,ENCODE(‘MSG’,’by5sec’)),null)FROM(SelectDatabase()ascurrent)astb1;TimingAttack猜:1.判断是否能被注入2.猜哪种数据库3.猜表名4.猜字段名5.猜字段值SQL注入的一般过程Pangolin注入工具Sqlmap注入工具1.使用预编译的语句2.使用存储过程3.检查数据类型4.使用安全函数5.安全狗防御SQL注入攻击安全狗Thanks
本文标题:SQL注入简介及攻击过程
链接地址:https://www.777doc.com/doc-6183325 .html