对于Access 数据库+ASP网站存在的SQL注入点的一般处理思路主要有下面五个途径: (1)查看是否有直接可以上传Webshell的地方。如果存在则可以直接上传Webshell 来获得Webshell控制权限。 (2)存在上传地址,但无法直接上传Webshell,可以尝试通过IIS解析漏洞等方法来 绕过对文件后缀名的验证。 (3)备份数据库。在存在输入的页面加入一句话木马,然后将数据库备份为asa或者 asp的文件。 (4)本地构建上传页面,通过抓包等方法本地提交到服务器。 (5)通过查询直接将一句话写入到一个文件中,方法即是本文用到的方法。下面就一个具体的目标如何实施渗透进行介绍。 扫描漏洞 本次渗透测试换了一个工具,这个工具是国外的,提供免费版本供安全爱好者使用。软件名字叫WebCmiser。该软件不需要安装,不过需要.net FrameWork2.0以上环境支持。运行后如图1所示,在url中输入本次需要扫描的地址 “http”//www.xxx.org”,然后在菜单栏中单击 “Scanner” 和 “ScanCurrentSite” 对目标站点进行扫描。\¥^0^记1扫描效果还是不错的,虽然也有误报,但对java扫描效果非常好。本次扫描结果表明目标网站有两个漏洞一个是SQL注入漏洞,另外一个是跨站漏洞。 ![]() SQL注入测试 在进行sql注入测试前,需要更多的收集目标所使用系统的信息,通过探测和查看网页源代码,获知该系统使用nbarticle通过网上下载了nbarticle的两个版本,对其数据库进行了分析和研究,该cms系统管理员表名,将该表名和表字段添加到 WebCruiser的系统设置中。 在漏洞扫描中选中存在sql注入点的记录,然后进行sql注入测试,sql注入测试跟 其它的sql注入测试步骤相同,先猜测数据库,然后猜测表,再猜测表列名,最后猜测数据。如图2所示,直接获取了数据库中管理员的密码。 技巧: (1)由于已经知道该系统采用Access,因此在SQL注入测试时,Databases直接选择 Accesso (2)在扫描出漏洞后,可以先在浏览器中进行%1注入测试,判断数据库类型。虽然webcruiser可以自动扫描出数据库的类型,但效果不是特别好,软件有时候会长时间没有反应。 ![]() 获取的密码值为16位的Cmd5加密值,将该值放入cmd5.com和xmd5.com进行破解, 密码设置不是很复杂,免费就能查到。NBArticle的后台地址为 http://www.xxx.org/aneer/index.html,打开后台地址后输入管理员帐号和密码,成功进入后台,如图3所示,虽然成功进入后台,但该管理界面中未提供上传功能,目标网站对代码进行过修改,有些功能都不能使用。 获取Webshell 在后台中虽然有数据库备份,但无法获取数据库的真实地址,因此无法进行备份。也就无法通过一句话木马进行数据库备份。但在高级管理中提供了sql语句直接执行功能,如 果知道网站的真实路径,那么可以通过执行sql语句直接生成一句话密码。通过分析发现, 后台首页提供了服务器信息,如图4所示,直接获取了网站后台的真实地址。 ![]() 在 SQL 语句中输入,然后执行即可获得一句话后门。使用中国菜刀进行一句话木马测试,如图6所示,成功获得该网站的webshell权限。 上传大马进行控制 在中国菜刀中直接上传一个aspnet的Webshell,运行后如图7所示,通过该Webshell来 查看数据库以及系统配置等信息。 由于该网站的权限配置很严格,通过多种提权工具均不能获得系统管理员权限,只能放弃。自此对该目标的渗透结束。 思索与体会 (1)就本案例来说,access网站的防护可以通过自定义加密算法,即使采用md5加密, 也要采用md5变异,这样即使通过SQL注入点获得了管理员的密码,也会因为密码无法破解而放弃。 (2)用户名和密码强度上下功夫,在用户密码上设置10位以上高强度密码,让Cmd5.COm 等网站都无法破解。 |