自动注入攻击工具的研发
产品说明&技术白皮书-天融信入侵防御系统产品说明

天融信网络入侵防御TopIDP系列产品说明天融信TOPSEC®北京市海淀区上地东路1号华控大厦100085电话:(86)10-82776666传真:(86)10-82776677服务热线:400-610-5119800-810-5119Http: //天融信网络入侵防御系统TopIDP系列产品说明1前言 (2)2网络入侵防御系概况 (2)2.1入侵防御系统与防火墙 (3)2.2入侵防御系统与IDS (3)3天融信网络入侵防御系统TOPIDP (3)3.1产品概述 (3)3.2T OP IDP体系架构 (4)3.3T OP IDP主要功能 (5)3.4天融信网络入侵防御系统T OP IDP特点 (6)3.4.1领先的多核SmartAMP并行处理架构 (6)3.4.2强大的攻击检测能力 (6)3.4.3精准的应用协议识别能力 (7)3.4.4实用的网络病毒检测功能 (8)3.4.5智能的上网行为监控和管理 (8)3.4.6立体的Web安全防护 (8)3.4.7先进的无线攻击防御能力 (9)3.4.8精确的QOS流量控制能力 (9)3.4.9灵活的自定义规则能力 (9)3.4.10丰富的网络部署方式 (9)3.4.11高可靠的业务保障能力 (10)3.4.12可视化的实时报表功能 (10)4天融信网络入侵防御系统TOPIDP部署方案 (11)4.1.1典型部署 (11)4.1.2内网部署 (12)4.1.3IDP.VS.IDS混合部署 (13)4.1.4WIPS旁路部署 (14)5结论 (15)1前言随着计算机网络与信息化技术的高速发展,越来越多的企业、政府构建了自己的互联网络信息化系统,互联网络已成为人们生活中必不可缺的工具,在网络带来高效和快捷的同时,网络安全形势也从早期的随意性攻击,逐步走向了以政治或经济利益为主的攻击;攻击的手段从早期简单的扫描、暴力破解逐步过渡到通过缓冲区溢出、蠕虫病毒、木马后门、间谍软件、SQL注入、DOS/DDoS等各种混合手段攻击;攻击的层面也从网络层,传输层转换到高级别的网络应用层面;而很多黑客攻击行为也由单个个体转变到有组织的群体攻击行为上,其攻击行为有明显的政治或经济诉求目的,给政府、企业的网络信息业务系统安全造成极大隐患。
注入攻击

SQL注入攻击入门资料1.1 MsSQL+ASPX平台注入攻击技术在对MsSQL数据库实施攻击的过程中,通常会遇到三种数据库管理权限:public权限、db_owner权限和sa权限,这种三权限的划分存在于Microsoft SQL Server2000、Mic rosoft SQL Server2005、Microsoft SQL Server2008等版本,并形成了依据这三种权限实施注入攻击的基本思路。
1.1.1 注入漏洞挖掘1.单引号判断法通常判断SQL数据库是否存在漏洞的方式是在浏览某个网页的URL后面加一个单引号(即:“'”),网页显示错误如下:字符串'' 后的引号不完整。
可以看出,当前网站数据库为MsSQL,如图1所示。
图1通过这个报错的显示还可以看出网站代码采用的是aspx编码;采用asp编码的网站,报错信息通常显示如图2;采用Mysql、Oracle数据库架设的网站报错信息通常显示如图3、图4所示。
图2图3图4采用MsSQL数据库架设的网站,经典的判断方式为“user>0”,该方法不仅能暴出数据库类型,还能暴出当前数据库用户名。
提交URL为“/ProCo n.aspx?id=100 and user>0”,网页显示错误如下:在将nvarchar 值'hadong' 转换成数据类型int 时失败。
显示网站采用的数据库为MsSQL数据库,当前用户名为“hadong”,如图5所示。
图5使网页报错并显示数据库类型的方式,不止加单引号这一种,还可以在URL后面添加字母、数字、运算符,甚至是去掉URL的一部分,都可以使网页报错。
还有一种情况就是网页存在注入漏洞,但不显示任何错误信息,这种情况下只能采取“盲注”。
因此,在检测注入漏洞的过程中,具体实施何种方法需要读者在实践中体会和总结。
2. 数字型注入漏洞判断法对某个网页是否确定存在注入点,一般采用经典的“and 1=1”和“and 1=2”进行探测。
sql注入验证方法

sql注入验证方法SQL注入验证方法什么是SQL注入SQL注入是一种常见的网络安全漏洞,攻击者通过在输入字段中插入恶意的SQL代码,从而执行非授权的数据库操作。
这可以导致泄露敏感数据、篡改数据,甚至完全控制数据库服务器。
SQL注入验证方法以下是一些常用的SQL注入验证方法,用于检测系统是否容易受到SQL注入攻击。
1. 单引号测试尝试在输入参数中插入单引号(’),观察系统对此的响应。
如果系统返回异常错误信息,则可能存在SQL注入漏洞。
2. 关键字测试尝试在输入参数中插入常见的SQL关键字,如SELECT、INSERT、UPDATE等,观察系统对此的响应。
如果系统执行了相应的数据库操作,说明存在SQL注入漏洞。
3. 嵌套查询测试尝试在输入参数中插入嵌套查询语句,如(SELECT * FROM users),观察系统对此的响应。
如果系统返回了与正常查询结果相同的数据,说明存在SQL注入漏洞。
4. UNION测试尝试在输入参数中使用UNION操作符,如' UNION SELECT username, password FROM users--,观察系统对此的响应。
如果系统返回了其他表中的数据,说明存在SQL注入漏洞。
5. 注释测试尝试在输入参数中使用注释符号(--或#),如' OR '1'='1' --,观察系统对此的响应。
如果系统返回了所有记录,说明存在SQL注入漏洞。
6. 基于错误的测试尝试在输入参数中插入错误的SQL语句,如' AND 1=2,观察系统对此的响应。
如果系统返回了错误信息,说明存在SQL注入漏洞。
防范SQL注入的方法为了防范SQL注入攻击,开发人员应采取以下措施:•使用参数化查询或预编译语句,确保用户输入的数据不会被当作代码执行。
•对用户输入进行严格的验证和过滤,去除可能包含恶意代码的字符和特殊符号。
•不要直接拼接用户输入的数据到SQL语句中,而是使用参数化的方式传递数据。
网络安全常见漏洞利用案例剖析

网络安全常见漏洞利用案例剖析网络安全是当前全球性的重要问题之一,各种漏洞的存在给网络安全带来了巨大的威胁。
本文将会通过剖析几个常见的网络安全漏洞利用案例,探讨其原因、影响以及防范措施,以期增强人们对网络安全的认识与防范意识。
一、跨站脚本攻击(Cross-Site Scripting,XSS)跨站脚本攻击是指攻击者通过注入恶意脚本来获取用户的敏感信息或控制用户的浏览器。
攻击者通常利用Web应用程序中未正确校验、过滤用户输入的漏洞,插入嵌入式脚本,从而篡改网页内容、窃取用户信息或进行其他恶意操作。
常见案例剖析:某电子商务网站存在未过滤用户输入的漏洞,攻击者利用该漏洞成功注入恶意脚本。
当用户浏览包含该脚本的页面时,脚本会在用户浏览器中执行,窃取用户的登录凭证以及其他敏感信息。
影响:跨站脚本攻击可能导致用户个人资料泄露、账号被盗或者进行恶意操作等后果。
对于网站而言,会损害其声誉,导致用户流失。
防范措施:1. 对用户输入进行严格的过滤和校验,防止恶意脚本的注入。
2. 使用现代化的Web框架和开发工具,自动提供一些跨站脚本攻击的防护措施。
3. 及时更新和修复软件漏洞,加强系统安全配置。
4. 对用户敏感信息进行加密处理,确保安全传输。
二、SQL注入攻击(SQL Injection)SQL注入攻击是指攻击者通过在Web应用程序中注入恶意的SQL 代码来实现非法操作,例如修改、删除数据库中的数据。
攻击者通过修改输入数据,使得应用程序在执行SQL查询时发生意外,从而绕过访问控制,获取、篡改或删除敏感数据。
常见案例剖析:某社交网络应用程序的登录界面存在SQL注入漏洞,攻击者使用一条带有恶意注入脚本的SQL语句成功通过验证并登录到其他用户账号。
影响:SQL注入攻击可能导致用户个人隐私泄露、账号被盗、整个数据库被篡改或删除等后果。
这种攻击方式对网站和用户都造成了重大的损失。
防范措施:1. 对用户输入进行严格的限制和校验,过滤非法字符。
二阶SQL注入防御技术研究

二阶SQL注入防御技术研究王杰;汪洋【摘要】随着Web2.0时代的到来,大量基于B/S架构的应用程序在各个企业的业务系统中得到了广泛的应用.在应用开发过程中,如果开发者缺乏相应的安全意识,则会导致网站存在着安全隐患.SQL注入攻击所造成的损失是灾难性的.目前,大量的研究工作主要是针对于一阶SQL注入攻击,而忽略了对二阶SQL注入的研究.二阶SQL注入对Web应用带来的危害与一阶SQL注入一致,相比与一阶SQL注入,这种漏洞更加细微,更加难以被检测到.通过对比分析一阶SQL注入的过程与产生原理,设计了一个二阶SQL注入防御系统.该系统主要包括随机化模块、语法分析模块、去随机化模块、参数化替换模块.实验结果显示,该系统在二阶SQL注入的防御上有着很好的效果.【期刊名称】《电子设计工程》【年(卷),期】2018(026)010【总页数】5页(P63-67)【关键词】SQL注入;语法分析;参数化;随机化【作者】王杰;汪洋【作者单位】武汉邮电科学研究院湖北武汉430074;南京烽火软件科技有限公司江苏南京210019;南京烽火软件科技有限公司江苏南京210019【正文语种】中文【中图分类】TN99当下,大量基于数据驱动的Web应用程序被用来提供各种服务[1-3]。
目前越来越多的互联网关键业务如电子商务、个人邮箱、网上网络交易平台等等,都是通过web技术实现的。
开放式Web应用安全项目(OWASP,Open Web Application Security Project)提供的数据表明,网站里存在最多且造成危害最大的攻击就是SQL注入漏洞。
从SQL注入的首次发现以来,国内外的一些学者,在SQL注入的防御与检测上进行了深入研究,并提出了多种防御与检测方法。
这些方法在网站防御中取得了不错的成果,但是针对于更加复杂的二阶SQL注入的防御和检测上却略显不足。
二阶SQL注入的所带来的危害与其等价的一阶SQL注入一致,可以使攻击者直接获取后台数据库中的隐私信息,但它比一阶SQL注入攻击的注入过程更加复杂[4]。
网络安全攻击实验报告

网络安全攻击实验报告网络安全攻击实验报告一、实验目的:学习并熟悉网络安全攻击的基本原理和方法,了解网络安全防御的必要性。
二、实验内容:1. DDoS攻击实验:模拟分布式拒绝服务攻击,测试目标服务器的抗压能力。
2. SQL注入攻击实验:利用应用程序存在的漏洞,尝试执行恶意SQL语句,获取数据库敏感信息。
3. XSS攻击实验:使用恶意代码注入到网页中,盗取用户的敏感信息。
三、实验步骤:1. DDoS攻击实验:a. 配置并启动一台攻击服务器,使用DDoS攻击工具发送大量伪造IP地址的请求,模拟大规模的攻击流量。
b. 监测目标服务器的响应速度、可用性以及是否有部分服务宕机等情况。
c. 统计攻击期间服务器的流量数据,评估服务器的抗压能力。
2. SQL注入攻击实验:a. 检测目标应用程序是否存在SQL注入漏洞。
b. 使用SQL注入工具尝试执行注入攻击,如在输入框中输入恶意的SQL语句。
c. 观察并记录攻击是否成功,是否能够获取到数据库中的敏感信息。
3. XSS攻击实验:a. 检测目标网页中是否存在XSS漏洞。
b. 在可能存在漏洞的位置输入恶意的代码,如<script>alert('XSS')</script>。
c. 查看攻击是否成功,是否能够在用户浏览器中执行恶意代码。
四、实验结果:1. DDoS攻击实验:目标服务器在大规模的攻击流量下,响应速度明显减慢,部分服务无法正常访问,服务器的抗压能力较低。
2. SQL注入攻击实验:在存在SQL注入漏洞的应用程序上成功执行了注入攻击,获取到了数据库中的敏感信息。
3. XSS攻击实验:成功在目标网页中执行了恶意代码,弹出了一个恶意弹窗。
五、实验反思:1. 网络安全攻击实验过程中需要谨慎操作,避免对正常的网络环境和他人的利益造成伤害。
2. 攻击实验结果提示了目标服务器和应用程序存在的安全漏洞,验证了网络安全防御的重要性。
3. 需要提高网络安全意识,加强对网络安全攻击的防范和应对能力。
【转】基于SQL的Web系统安全防范——SQL注入漏洞
【转】基于SQL的Web系统安全防范——SQL注⼊漏洞攻击研究及防范措施SQL-Based Web System Security——Structured Query Language InjectionLeak Attack Study And Defense MeasureSQL注⼊(SQL Injection)漏洞攻击是⽬前⽹上最流⾏最热门的⿊客脚本攻击⽅法之⼀,那什么是SQL注⼊漏洞攻击呢?它是指⿊客利⽤⼀些Web应⽤程序(如:⽹站、论坛、留⾔本、⽂章发布系统等)中某些存在不安全代码或SQL语句不缜密的页⾯,精⼼构造SQL语句,把⾮法的SQL语句指令转译到系统实际SQL语句中并执⾏它,以获取⽤户名、⼝令等敏感信息,从⽽达到控制主机服务器的攻击⽅法。
1. SQL注⼊漏洞攻击原理1. 1 SQL注⼊漏洞攻击实现原理SQL(Structured Query Language)是⼀种⽤来和数据库交互的语⾔⽂本。
SQL注⼊的攻击原理就是攻击者通过Web应⽤程序利⽤SQL语句或字符串将⾮法的数据插⼊到服务器端数据库中,获取数据库的管理⽤户权限,然后将数据库管理⽤户权限提升⾄操作系统管理⽤户权限,控制服务器操作系统,获取重要信息及机密⽂件。
SQL注⼊漏洞攻击主要是通过借助于HDSI、NBSI和Domain等SQL注⼊漏洞扫描⼯具扫描出Web页⾯中存在的SQL注⼊漏洞,从⽽定位SQL注⼊点,通过执⾏⾮法的SQL语句或字符串达到⼊侵者想要的操作。
下⾯以⼀段⾝份验证的.NET代码为例,说明⼀下SQL 注⼊攻击的实现⽅法。
SqlConnectionnwConn = new SqlConnection((string)ConfigurationSettings.AppSettings["DBconnStrings"]);string queryStr = "SELECT userid,userpwd, username,type FROM users where userid='" + Txtusername.Text +"'";DataSet userSet = new DataSet();SqlDataAdapter userAdapter = newSqlDataAdapter(queryStr, nwConn);userAdapter.Fill(userSet, "Users");Session["UserID"] =Txtusername.Text.ToString();Session["type"] =type.Text.ToString();Response.Redirect("/Myweb/admin/login.aspx");从上⾯的代码中可以看出,程序在与数据库建⽴连接得到⽤户数据之后,直接将username的值通过session传给login.aspx,没有进⾏任何的过滤和处理措施, 直接⽤来构造SQL 语句, 其危险系数是⾮常⾼的, 攻击者只要根据SQL 语句的编写规则就可以绕过⾝份验证,从⽽达到⼊侵的⽬的。
sqlmap注入语句
sqlmap注入语句
SQL注入是一种常见的Web应用程序漏洞,它允许攻击者通过在用户输入中注入恶意SQL代码来执行非授权的数据库操作。
SQLMap是一款常用的自动化SQL注入工具,它可以帮助攻击者发现和利用SQL注入漏洞。
以下是一些使用SQLMap进行注入的示例语句:
1. 发现注入漏洞:
sqlmap -u " dbs
该命令将对给定的URL进行检测,找到可能的数据库,如MySQL、Oracle等。
2. 查看数据库信息:
sqlmap -u " -D database_name tables
该命令将列出指定数据库中的所有表。
3. 查看表内容:
sqlmap -u " -D database_name -T table_name dump
该命令将显示指定表中的数据。
4. 提取数据库中所有的用户名和密码:
sqlmap -u " -D database_name -T table_name -C "username,password" dump
该命令将从指定表中提取用户名和密码字段的内容。
以上是一些常见的SQLMap注入语句示例,具体的使用方法可以根据具体的情况和需要进行调整。
2021年最新手工注入脚本安全电脑资料
最新手工注入脚本安全电脑资料现在注入工具横行,自动化的程度已经...不能再自动了.很多人会熟练的使用啊D,明小子之类的自动注入工具.以为自己就会了...注入的原理呢.什么是注入.为什么会造成注入.过程...等.你知道吗?你有没有试过真正的手工注入?没吧.现在就利用我写的手工注入工具来讲解一下总体手工注入过程.先找个有注入漏洞的站.很简单满大街都是.. ___hu168./A3/NewsInfo.asp?id=75manage_Userusername adminpassword bfpmsid 35已经找好了.这是一个标准欠黑型网站.安全度就不用说了.. ___hu168./A3/NewsInfo.asp?id=75有注入漏洞的地址.检查一下.基本确定可能有漏洞.继续.. ___hu168./A3/NewsInfo.asp?id=75 and exists (select * from manage_User)查询manage_User这个表名是否存在.不好意思.这工具老出错...录制这个工具不怎么好用.有好用的有空介绍个啊....好了继续.manage_User 存在...页面返回正常...名字改了下`不存在就返回错误的页面`这里是给你填写提示语句用的`不用的话清空就行了.继续.返回正常.说明存在.继续.等等`听电话`不好意思.不是1位哦`回显错误.呵呵`5位的`回显正常`这样我们就知道他很多东西了`表..项..还有内容长度.帐号的第一位的第一个字母不是1所以出错.呵呵`帐号的第一位的第一个字母是a 正确...所以回显正常. 帐号是什么我想都不用怎么想了吧`5位数的admin确实是的哦....哈哈.. ___hu168./A3/NewsInfo.asp?id=75 and 1=(select count(*) from [manage_User] where left(username,5)='admin')为了给大家学习.我把例句都提取出来了.和程序过程是一样的,大家可以研究下.其他的密码等也是这种过程. 大家明白了吗?要难不是很难`只是要有耐心.如果简单的话就不会出现全自动的注入工具了.希望大家在使用我的工具的同时也能学到点东西.模板,内容仅供参考。
网络攻击演示实验报告
一、实验目的本次实验旨在了解网络攻击的基本原理、方法及防御措施,提高网络安全意识和防护能力。
通过模拟网络攻击实验,使学员掌握以下技能:1. 熟悉常见的网络攻击类型,如SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造等。
2. 掌握网络攻击的实验方法和步骤。
3. 了解网络安全防护措施,提高网络安全防护能力。
二、实验环境1. 操作系统:Windows 102. 浏览器:Chrome3. 实验工具:Burp Suite、SQLMap、XSSTrainer、DVWA等三、实验内容1. SQL注入攻击与防御(1)实验步骤① 在SQLMap工具中配置攻击参数,选择攻击目标。
② 执行攻击,观察SQL注入漏洞是否存在。
③ 若存在漏洞,尝试获取数据库信息。
(2)防御措施① 对用户输入进行过滤和转义。
② 使用参数化查询。
③ 限制数据库权限。
2. XSS跨站脚本攻击与防御(1)实验步骤① 在XSSTrainer平台上进行实验,尝试各种XSS攻击方式。
② 观察XSS漏洞是否存在。
(2)防御措施① 对用户输入进行编码和转义。
② 使用内容安全策略(CSP)。
③ 设置HTTPOnly和Secure标志。
3. CSRF跨站请求伪造攻击与防御(1)实验步骤① 在DVWA平台上设置CSRF漏洞,模拟攻击场景。
② 使用Burp Suite进行攻击,观察CSRF漏洞是否存在。
(2)防御措施① 使用验证码技术。
② 设置CSRF令牌。
③ 限制跨站请求的来源。
4. DDoS攻击与防御(1)实验步骤① 使用DDoS攻击工具,对实验主机进行攻击。
② 观察实验主机是否受到攻击。
(2)防御措施① 启用SYN Cookies处理SYN洪水攻击。
② 配置防火墙限制IP地址的连接速率。
③ 使用专业的DDoS防护服务。
四、实验结果与分析1. SQL注入攻击与防御实验结果表明,在未采取防护措施的情况下,SQL注入攻击容易成功。
通过过滤和转义用户输入、使用参数化查询、限制数据库权限等措施,可以有效防御SQL注入攻击。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 绪论 项目背景及意义 SQL注入攻击是一种非常有效且破坏性很大的渗透手段。它是针对于数据库的一种攻击手段,通过利用数据库的外部接口把恶意代码插入到SQL语言中使数据库服务器解析并执行,以达到入侵目标数据库及至整个操作系统的目的。了解和熟悉SQL注入原理,掌握防御SQL注入攻击的原理和技巧就变得至关重要。SQL注入攻击的普遍性、难捉摸性、简易性等特点让其成为了网络中黑客主流攻击方式之一。因为SQL注入是从正常的Web平台入口进行请求访问,和请求正常的Web页面没有什么区别,所以目前市面上除了专门的Web防御防火墙外,大部分防火墙都不会对这类SQL注入攻击进行监控和发出警报,若网站管理员没有经常查看IIS日志的经验和习惯,有可能被入侵很长一段时间后都没有任何发觉。由于现在广泛流行的恶意攻击工具,SQL注入在近年来呈现一种增长的趋势。 据OWASP(开放式web应用程序安全项目)每隔三年更新一次的“十大安全隐患列表”,在近几次公布的总结Web应用程序最可能、最常见、最危险的十大安全隐患中,SQL注入攻击一直排列靠前。OWASP TOP 10 2010中列出的最严重的Web应用程序的漏洞中,注入(Injection)风险位居第一。 Web应用的发展越来越成熟,应用的各项技术发展得也越来越复杂。它们涵盖了从外部动态展示INTERNET和内部工作网络到以WEB协议方式传递数据的企业工作应用(如文档管理系统等)。这些系统的实用性及其数据存储、处理内容的机密性和敏感性对于企业的主要业务而言都非常重要。 当前市面的注入攻击检测工具只能对单个网页或者单个URL进行检测和注入,无法对整个网站的漏洞进行检测。而漏洞扫描工具可以对整个网站漏洞进行扫描却无法进行进一步的注入攻击检测。很大程度上不能满足开发人员和管理人员对网站SQL注入漏洞全面了解的要求。本研究的最终目的是分析SQL注入攻击的类型、关键技术和原理,并研究SQL注入在实际应用中的操作方法,在此基础之上,设计并开发了一套自动注入工具。 因为恶意攻击者不仅可以通过SQL注入攻击对Web应用数据进行盗取、篡改信息,还可以进一步对于服务器进行恶意操作,并且植入木马或者后门程序,甚至控制整个服务器,这就严重影响了应用的正常运行以及对于应用的信息安全带来严重后果。所以,对于功能齐备的SQL注入攻击扫描与检测工具的研究与开发具,具有非常重要的现实意义。应用程序开发者或网站管理人员使用此工具对自已的网站进行安全检测,以达到减小SQL注入的可能性。同时,在渗透测试工作中,对于安全测试也具有很大的帮助。
研究内容 自动注入攻击工具的研发 本研究首先理解Web应用的工作原理,首先简要概述Web应用系统通用的架构模式,理解了构建模式后能更清晰的了解SQL注入的产生过程,然后从Web应用的代码层来分析介绍是什么引起了通用的SQL注入,然后研究介绍SQL注入漏洞的利用过程。从框架到利用逐步分析SQL注入的过程和利用,然后根据分析的内容构建SQL注入的自动化检测及注入攻击利用框架。
SQL注入原理 SQL注入的原理,是将SQL代码插入或者非正常时添加到应用的参数当中,并且进行了一定的拼接传入到了后台的数据库服务器,最终使服务器执行了该拼接的恶意SQL命令。所有的是通过SQL语句执行的应用过程均存在被攻击的威胁,因为SQL的多样多变性语言结构特征使得攻击者可以拼接构建丰富的代码编码手段等来拼接语句来欺骗服务器。SQL注入攻击的主要方式就是直接将命令插入到应用服务的表单参数中传入到后台数据库查询字符串中,这些参数就会被带入到后台数据库服务器进行执行解析,攻击者便可以构造恶意命令来达到攻击目的。
SQL注入检测技术 检测发现SQL注入漏洞有一条简单的规则:SQL注入是通过发送特殊数据来触发异常操作。该规则包括如下含义: 检测Web应用上所有的输入数据; 集合SQL语法,归类所有可能触发异常的数据类型; 检测数据库服务器应用响应中的异常。 首先需要清楚Web浏览器向Web服务器发送请求的过程。不同的服务应用会有不同的体现方式,它们均处在基于Web的环境中,所以基本原理是相同的。 识别和检测应用接受的所有数据,攻击一般都会修改这些数据,所以需要识别并分析服务器对它们的响应。有时响应中会直接包含来自数据库的SQL错误,有时需要不断的方式来检测和确定响应中细微的差别。 章节安排 本论文章节安排如下: 第一章 绪论:综述此研究设计的背景意义以及研究内容。 第二章 SQL注入技术研究:主要对SQL注入攻击方式过程和攻击特点进行归类、识别,首先理解Web应用的工作原理,概述Web应用通用的构建方式,为理解SQL注入的产生过程提供一些背景知识,接下来从Web应用的代码层介绍引发SQL注入的因素以及哪些开发实践和行为会引发SQL注入。分析SQL注入过程和利用,并架构如何将SQL注入的发现过程自动化以提高检测简单SQL注入的框架。 第三章 SQL注入攻击技术研究:根据SQL注入技术,研究利用数据库中的功能来攻击系统端口的技术。数数据库大多均带有丰富的数据库编程功能,可以利用SQL注入漏洞来访问文件系统以执行有效的任务,可以在基础操作上执行各种命令,扩大范围攻击的利用技术细节。当发现SQL注入漏洞以及初步的利用获取数据后,可以利用SQL注入漏洞来访问文件系统来扩大渗透范围。还可以在操作系统上执行各种命令,攻击可以使用它们扩展数据库的可达区域并在更大的范围内发动攻击。 第四章 注入高级技巧研究:Web应用通常会使用过滤应用,设计这些过滤的目的就是防御SQL注入在内的常见攻击。这些过滤方式可以是位于web应用的代码层中,也可以通过第三方的外部实现,如Web应用防火墙(WAF)或入侵防御系统(IPS)。当注入攻击碰到这些防御应用,若想进一步利用漏洞,则需要寻找一种能避开过滤器防护的高级方法以便恶意输入传递给易受攻击的代码。 第五章 自动注入工具框架设计:根据项目的设计需求,以及Python编程语言的特点,对自动注入攻击工具整体框架进行分析和设计。并且分析功能模块中的重点和关键技术。 第六章 SQL注入测试:自动注入攻击实例测试。 第2章 SQL注入技术 Web应用工作原理和架构简析 不论是用何种脚本语言开发的Web应用,都有一个共同点:具有交互性并且大多是数据库驱动的。基于数据库驱动的Web应用一般都包含三层:a presentation tier(表示层,Web浏览器或呈现引擎)、a logic tier(逻辑层,如C#、ASP、.NET、PHP、JSP等编程语言)和a storage tier(存储层,如Microsoft SQL Server、MySQL、Oracle等数据库)。Web浏览器(表示层,如Internet Explorer、Safari、Firefox等)向中间层(逻辑层)发送请求,中间层通过查询、解析数据库(存储层)来响应该请求。 图2-1 简单的三层架构 Web三层架构解决方案没有扩展性,研究人员不断地对Web三层架构进行改进优化,在可维护性和可扩展性的基础上建立了一种新概念:n层应用开发模式。其中有一种就是Web四层架构解决方案,该方案在Web服务器和数据库之间使用了一层中间件服务器(通常称为应用服务器)。下图2-2中,Web浏览器(表示层)向中间层(逻辑层)发送请求,后者一次调用由位于应用层的应用服务器所提供的API,应用层通过查询、更新数据库(存储层)来响应该请求。 图2-2 四层架构
识别SQL注入 SQL注入就是程序员对程序中动态的SQL语句没有作严格的过滤或检测,导致黑客能在注入点提交非法的SQL语句,导致程序和服务器的信息被泄漏。由于SQL注入的入门门槛低,隐蔽性好,破坏性大,杀毒软件无法查杀,是当前最主流的入侵手段。 SQL注入攻击的本质,就是服务器将用户传入的数据在数据库中当成了SQL代码执行。这里便有两个关键因素:第一个是用户有权限输入数据;第二个是服务器应用数据执行了用户传入的数据。
识别数据输入 Web环境是一种C/S(客户端/服务器)架构。客户端使用浏览器向Web服务器发送请求并等待响应。Web服务器接收到请求后,通过查询、解析数据库,将响应发送回客户端。很明显,双方便必须使用一种协议作为双方的约定,这种传输协议就是HTTP。 首先,必须识别远程Web应用所接收的所有数据输入。HTTP协议定义了可以发送给服务器的操作方式,这里只关注研究与SQL注入攻击相关的两种方法:GET和POST。 GET请求: GET是向服务器发索取数据的一种请求,是一种请求服务器的HTTP方法。使用GET请求时,信息是显示在URL中的。GET请求对用户是透明的,如下例,WEB服务器的GET请求如下所示: GET /general/vote/show/webst/VOTE_ID=131 HTTP/ Accept: text/html, application/xml;q=, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q= Accept-Language: zh-CN,zh;q=,en;q= Accept-Encoding: gzip, deflate Proxy-Connection: Keep-Alive 该请求中与数据查询相关的参数在URL中,格式如下所示: VOTE_ID=131 上述示例中包含一个参数:VOTE_ID。服务器应用将会把参数值带入数据库中解析执行,然后将响应结果返回给客户端。 POST请求: POST请求是作为HTTP消息的实际内容发送给web服务器的HTTP方法。在浏览器中填写表单并点击Submit按钮时通常使用该方法。下面的例子是浏览器发送给远程WEB服务器的内容,请求如下所示: POST /general/vote/show/webst/ITEM_ID=345 HTTP/ Accept: text/html, application/xml;q=, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q= Accept-Language: zh-CN,zh;q=,en;q= Accept-Encoding: gzip, deflate Connection: Keep-Alive Content-Length: 40 Content-Type: application/x-www-form-urlencoded content=POST+TEST&submit=+%CC%E1+%BD%BB+ 其他注入数据: 除了GET或POST参数传输检索数据外,HTTP请求的其他内容也可能会触发SQL注入漏洞。