首页 > 数据库 > Access > 正文

解读SQL注入漏洞初级应用之Access篇

2020-07-13 12:25:19
字体:
来源:转载
供稿:网友
如果你已经掌握了SQL注入漏洞的一些相关的基础知识,那是不是觉得看了理论有一种想急于知道如何实际动手操作的冲动,好吧,Let’s go,这篇文章我们就来实战SQL注入,不过针对网站的数据库是ACCESS的,毕竟在国内都是用虚拟机,一般只有FTP上传权限,所以还是很有市场的。

  首先要注意的是,如果你以前没试过SQL注入的话,那么第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。

  1.入侵测试目标:

  前不久我们学校的一个同学做了个网站,做的还挺漂亮的,叫我去看下,我顺便对它进行了一次安全检测。文章发表前已经征得该同学的同意,请不要效仿。下面的真实网址已经被我屏蔽。

  测试网站:http://www.xxx.com/index.asp

  2.寻找可能的SQL注入点

  我们知道,一般的文章管理系统,下载系统,论坛,留言本,相册等都会有个show.asp?id= list.asp?id= news.asp?id= 什么的,其实一看就知道是调用SQL语句查询数据库并显示出来。我们不难发现这个站的新闻系统就是show.asp?id=的形式,随便点一个链接得到地址如下:

  http://www.xxx.com/show.asp?id=474

  从这个地址就知道是通过show.asp执行SQL语句访问数据库,可想而知,SQL语句原貌大致如下:
  select * from 表名 where 字段=xx,如果这个show.asp对后面的id整型参数过滤好的话,就可能存在SQL注入漏洞。

  3.判断SQL注入是否存在

  通过上面的分析知道,要判断有没有SQL注入漏洞,就得看show.asp有没对参数过滤好,所以可以用以下步骤测试SQL注入是否存在。

  a.最简单的判断方法

  在要检测的网址后面加一个单引号:http://www.xxx.com /show.asp?id=474’

  此时show.asp中的SQL语句变成了:select * from 表名 where 字段=xx’,如果程序没有过滤好“’”的话,就会提示 show.asp运行异常;但这样的方法虽然很简单,但并不是最好的,因为:

  第一:不一定每台服务器的IIS都返回具体错误提示给客户端,如果程序中加了cint(参数)之类语句的话,SQL注入是不会成功的,但服务器同样会报错,具体提示信息为处理 URL 时服务器上出错。请和系统管理员联络。

  第二:由于以前存在过的1’ or ‘1’=’1漏洞,所以目前大多数程序员已经将“’“ 过滤掉,所以用" '"测试不到注入点,所以一般使用经典的1=1和1=2测试方法,如下:

  http://www.xxx.com /show.asp?id=474 and 1=1, show.asp运行正常,而且与http://www.xxx.com /show.asp?id=474运行结果相同。

  http://ww.xxx.com /show.asp?id=474 and 1=2, show.asp运行异常,(这就是经典的 1=1 1=2 判断方法)。

  这里很明显当加 and 1=1 的时候返回完全正常的页面,加 and 1=2 显示:暂时还没有文章!

  到这里基本上可以断定他存在SQL注入,至于能不能注出账号密码来,还需要更进一步的注入测试,这里只能得到SQL注入点: http://www.xxx.com/show.asp?id=474

  4.判断表是否存在

  国内的一般程序员在设计数据库的时候都会用一些特定的做为表名,字段名什么的。比如说后台管理员一般放在表admin里面,而注册的用户放在表users里,当然,只是一般,依照各程序的不同而不同。

共3页上一页123下一页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表