01、概念介绍
1.1 xss
XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是 JavaScript,但实际上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的 HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和 cookie 等各种内容。
参考资料:百度百科
1.2 pr 提权
PR 提权利用 Windows 的一个本地溢出漏洞,主要作用就是可以将低权限用户提升为系统权限,常见于 webshell 提权,补丁号为 KB952004。
02、靶场环境
攻击机:Mac ip:10.211.55.2
靶机:Windows Server2003 + xycms
搬家网站 ip:10.211.55.17:81
考察安全测试能力:
如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337
03、安全测试流程
ps:当前靶场有多种安全方案可进行测试,文章中的方案仅供参考 !
3.1 信息搜集
浏览网站:
3.1.1 目录扫描
在这里先使用目录扫描器扫描下目录:
dirsearch -u http://10.211.55.17:81/
[14:59:34] 301 - 149B - /js -> http://10.211.55.17:81/js/
[14:59:34] 403 - 32B - /%2e%2e//google.com
[14:59:34] 500 - 3KB - /.ashx
[14:59:34] 500 - 3KB - /.asmx
[14:59:34] 500 - 3KB - /.aspx
[14:59:34] 500 - 3KB - /.axd
[14:59:37] 301 - 152B - /ADMIN -> http://10.211.55.17:81/ADMIN/
[14:59:37] 301 - 152B - /Admin -> http://10.211.55.17:81/Admin/
[14:59:38] 500 - 3KB - /Trace.axd
[14:59:39] 500 - 3KB - /WebResource.axd?d=LER8t9aS
[14:59:39] 403 - 32B - /\..\..\..\..\..\..\..\..\..\etc\passwd
[14:59:40] 301 - 152B - /admin -> http://10.211.55.17:81/admin/
[14:59:40] 200 - 3KB - /admin/
[14:59:40] 200 - 3KB - /admin/?/login
[14:59:46] 301 - 153B - /editor -> http://10.211.55.17:81/editor/
[14:59:46] 200 - 1KB - /editor/
[14:59:46] 500 - 3KB - /elmah.axd
[14:59:48] 301 - 153B - /images -> http://10.211.55.17:81/images/
[14:59:48] 200 - 3KB - /images/
[14:59:48] 301 - 150B - /inc -> http://10.211.55.17:81/inc/
[14:59:48] 200 - 806B - /inc/
[14:59:48] 200 - 739B - /js/
[14:59:53] 500 - 3KB - /service.asmx
[14:59:54] 301 - 152B - /style -> http://10.211.55.17:81/style/
[14:59:55] 500 - 3KB - /umbraco/webservices/codeEditorSave.asmx
[14:59:56] 500 - 3KB - /web.config
Task Completed
这里应该是有后台之类的信息。
3.1.2 插件搜集
通过 Wappalyzer 插件搜集得到的信息可以发现:
该系统应该是运行在 Windows Server 上,而且网站运行的语言是 asp,Web服务器是IIS的。
3.2 注入漏洞测试
正常的页面:
http://10.211.55.17:81/news_detail.asp?id=109
加了单引号之后的页面:
http://10.211.55.17:81/news_detail.asp?id=109'
因此,这里怀疑可能存在 SQL 注入。
3.3 弱口令漏洞
当前后台有以下几个信息:
-
后台显示是 XYCMS 企业建站系统,这是一个商业 CMS
-
该后台可能存在弱密码,似乎无法暴力破解,因为存在验证码
对于以上信息,首先进行弱口令尝试。
在后台使用 admin admin 进行测试发现,可以直接进入后台,因此存在弱口令漏洞。
而且在这里发现一个 bak 文件,应该是备份文件。点开下载下试试看:
所以这里的当前文件没啥意义。
3.4 验证码漏洞
同样在后台界面,当我们使用 Burpsuite 进行暴力破解的时候,虽然存在验证码,但是经过测试,这里的验证码可以多次复用,因此存在验证码复用漏洞。
3.5 xss 漏洞
在浏览网站的时候,看到在此处可以填写预约信息,根据经验得知:此类 cms 应该存在 xss 漏洞,后期的时候会进行测试。
04、漏洞验证
4.1 注入漏洞
在 3.2 中,已经发现了此处可能存在 SQL 注入漏洞,因此在这里使用 sqlmap 进行测试
sqlmap -u http://10.211.55.17:81/news_detail.asp?id=109
此时发现存在布尔盲注,而且数据库是 access 的,对于该类数据库,可以使用 Pangolin(穿山甲) 注入工具进行快速注入
此时同样快速发现存在注入。
直接获取数据库账号和密码信息:
得到此时的账号和密码的 md5 值:
admin|21232f297a57a5a743894a0e4a801fc3|
对此时的 md5 尝试进行解密:
密码为 admin
4.2 xss 盲打
盲打意味着不清楚何处可能存在 xss 漏洞,在多个能够插入 js 语句的地方进行测试。
在 3.5 中,证明该 cms 可能存在 xss 漏洞,因此在这里可以进行测试。
首先在自行搭建的 xss 平台上设置一个 xss 的 payload:
复制当前的 payload,在刚刚的留言板里面插入,此时修改下前端代码,直接将 xss 代码都插入进去:
此时,显示 xss 语句已经插入成功。
根据刚刚已知后台的地址和密码进行登录,点击在线预约管理,可以看到此处的留言都是看不到的,任意打开一个看看。
打开之后,看不到什么有效信息:
此时去 xss 平台中进行查看:
此时可以看到,已经获取到了后台的地址和 cookie 信息。
在这里通过另外一个新的浏览器上访问
http://10.211.55.17:81/index.asp,
并使用 Cookie Editor 将刚刚的 cookie 进行替换。
再访问
http://10.211.55.17:81/admin/xycms.asp
此时成功进入后台。
因此证明该网站存在 存储型XSS 漏洞。
4.3 后台 getshell
在进入后台之后,尝试获取一个 shell。
在后台发现,此 cms 为 XYCMS,在网上搜集关于此 cms 的漏洞:
在网上找到一篇 xycms 后台 getshell 的方法:
那就在后台试试看:
在网站名称处插入该一句话(其实在这里,网站名称、网站描述、网站关键字处任选一处均可),然后保存系统设置。
访问:http://10.211.55.17:81/inc/config.asp
用 webshell 管理工具进行连接,此处用蚁剑:
如下图添加之后,双击打开:
Webshell 连接成功: