热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

道2——未知攻,焉知防

无论是在甲方公司还是乙方公司,对于安全工程师,渗透测试能力和应急响应能力都是必不可少的。而在应急响应过程中,以解决实际为导向的编程语言——Python,更是信息安全从业者必备四大编程语言之一。因

无论是在甲方公司还是乙方公司,对于安全工程师,渗透测试能力和应急响应能力都是必不可少的。而在应急响应过程中,以解决实际为导向的编程语言——Python,更是信息安全从业者必备四大编程语言之一。因为Python能够快速验证你的想法,应急其实就是在跟黑客争分夺秒。所以,天下武功,唯快不破。

为什么会有人说“未知攻,焉知防”呢?因为黑客的攻击思路都比较“猥琐”,都是以点进行突破的。如果你刚好有一种攻击手法不了解,那么就没办法防御以这种手法对你进行攻击的黑客。

未知攻,焉知防。也就是我今天要说的《灰帽黑客的渗透测试之道》之道2.

多了解一些安全事件,多关注一些漏洞公告,多学习一些攻击手法,才能做好安全防御。

下面来说下近期遇到的一个安全事件,某宿科技是提供内容分发与CDN加速的公司。他们通常给用户提供几百个

CDN节点,在每个节点上分发缓存的静态资源来达到网络加速,防御DDOS攻击等。但是,当某个CDN节点被劫持后,

凡是当时访问该节点的用户都会遭受攻击。来张图:


当用户在浏览器输入正常的网址,进行登陆时。会被劫持到http://61.160.185.39:8082/,该网址会生成一个js脚本

注入到用户的浏览器中,从而劫持其账户密码。直接在浏览器查看源码是看不到关于8082这个端口的相关链接的,

因为该请求是某个隐藏很深的静态资源触发的。无奈没有这些CDN节点的登陆权限,因此也只能通过外部来测试。


现在我需要模拟Firebug解析出全部的网络请求。不断切换本机host访问该登陆页面。

为了解析这些网络请求,我使用mitmproxy做http代理,用selenium模拟访问。

#encoding:utf-8
#mproxy.py,设置为代理,并dump所有网络请求
#python3.5.3from mitmproxy.tools.main import mitmdumpmitmdump()


#encoding:utf-8
#switchVisit.py不断切换本机host并访问passport登陆页面
#python3.5.3import osfrom selenium import webdriverimport timeimport datetime#设置HTTP代理profile=webdriver.FirefoxProfile()profile.set_preference('network.proxy.type', 1)profile.set_preference('network.proxy.http', '127.0.0.1')profile.set_preference('network.proxy.http_port', 8080)  # intprofile.update_preferences()ffbrowser=webdriver.Firefox(firefox_profile=profile)#切换hostdef SwitchHosts(ip):    try:        os.remove(r'C:\WINDOWS\system32\drivers\etc\HOSTS')    except:        outfile=open(r'C:\WINDOWS\system32\drivers\etc\HOSTS', "w")        outfile.close()    with open(r'C:\WINDOWS\system32\drivers\etc\HOSTS',"w") as f:        f.write(ip+"\tpassport.xxxxxxx.com")#访问网站def VisitWebsite(browser):    try:        browser.get("http://passport.xxxxxxx.com")    except:        passif __name__ =='__main__':    #cdnnodeip.txt为每行一个cdnip地址    with open("cdnnodeip.txt",'r') as f:        for ip in f.readlines():            ip=ip.strip()            SwitchHosts(ip)            print(datetime.datetime.now(),"----",ip)            VisitWebsite(ffbrowser)            time.sleep(10)




推荐阅读
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 装饰器是一种用于在不修改原函数代码的情况下,动态地添加功能的工具。它允许你在函数执行前后插入额外的逻辑,从而增强或改变函数的行为。 ... [详细]
  • 本文探讨了在Java多线程环境下,如何确保具有相同key值的线程能够互斥执行并按顺序输出结果。通过优化代码结构和使用线程安全的数据结构,我们解决了线程同步问题,并实现了预期的并发行为。 ... [详细]
  • 落樱3D v0.5是一款在Android平台上发布的3D美少女格斗游戏,本次更新带来了多项新功能和优化。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • HDU 1394:线段树优化求解逆序对问题
    本文介绍如何使用线段树高效求解排列中的逆序对问题。通过单点增减和区间求和操作,线段树能够快速处理此类问题,并提供了一种替代树状数组的解决方案。 ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • 本文介绍了如何使用Java中的同步方法和同步代码块来实现两个线程的交替打印。一个线程负责打印1到52的数字,另一个线程负责打印A到Z的字母,确保输出顺序为12A34B...5152Z。 ... [详细]
author-avatar
手机用户2602936475
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有