[讨论]关于“SQL注入Access导出WebShell”的疑惑
议题作者:mika信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
[s:269][s:270]
最近又重新翻看一下老文章,看到这个文章的时候心里一亮,如果这个东西真的能用,那么可以很大程度上解决access注入的缺陷(只要知道表名,不需要再猜字段名就可以直接查看数据了),于是在本地建了一个mdb数据库,然后测试,结果非常顺利,无论是导出到本地还是远程都不成问题。但是当我把它放入注入点后,却发现了问题。
[s:289][s:270]
假设注入点的sql查询是这样的:
"select name from articles where id=" & request("id")
假设提交的id为5,那么查询语句应该是这样的:
select name from articles where id=5
那么注射语句怎么构造呢?[s:270]
我先测试了子查询,把id换成:5 and (select * into [admin.txt] in 'd:\abc\' 'text;' from admin)>0,于是整条语句就成了这样:
select name from articles where id=5 and (select * into [admin.txt] in 'd:\abc\' 'text;' from admin)>0
执行,却提示“子查询中不允许此操作”。
看样子子查询是白搭了,于是想到了联合查询,那么把id换成:5 union select * into [admin.txt] in 'd:\abc\' 'text;' from admin,整条语句就变成了:
select name from articles where id=5 union select * into [admin.txt] in 'd:\abc\' 'text;' from admin
执行后,提示“动作查询不能作为行的来源”。
我实在是不知道问题出在哪[s:270][s:270],既然那篇文章说了sql注入导出文本文件,那么子查询不行,联合查询也不行(有可能是我的错,但我不知道错在哪)。我不知道还能用什么方式?
纳闷中。。。[s:270] N年前小弟用N种方法测试过那文章里说的东西 得到了N个错误信息。 基本上都是动作查询不能作为行的来源
页:
[1]