信息收集之自动登录脚本

一个事实 在信息收集的过程中,一个常见的规律是,无论企业规模多大,其系统的细枝末节处都可能会存在安全隐患,尤其是最基本的弱口令问题。 开发目的 而如何在海量网站中快速寻找存在弱口令的网站,从而节省攻击者的精力以及时间成本成为本篇文章的开发目的。 思路 经过海量网站筛选,发现大部分网站登录页面的输入的地方都是input元素,我们只需准确定位用户名输入的input元素和密码输入的input的元素以及登录按钮元素,即可实现大部分无验证码网站登录。虽然是无验证码网站,但是也有许多小细节值得我们探讨。 实战 大概设计了一个工具流程便开始写这个工具。 个人使用browsermob-proxy这个工具用来充当http拦截器,用来获取登陆后网站的发包情况;使用selenium来控制浏览器模拟浏览器登录。 要点 打开网站一般会有个跳转,如果你直接使用requests库来请求根目录可能得不到登录网站的页面元素,所以需要使用工具控制浏览器模拟打开网站,通过current_url方法来定位登录页面,然后再通过page_source获取登录页面源代码。 ​ ​ 通过BeautifulSoup来解析网站源码,获取页面中所有input元素,然后使用type属性以及如username、account、用户名等关键字来定位用户元素,定位元素后再获取该元素属性作为后续自动登录寻找元素的锚。通过同样的方法定位密码元素及登录按钮。 ​ ​ 通过browsermob-proxy抓取的请求包定位具体的登录http请求包,然后替换其中输入的或明文或加密的字符串,使用requests库对他们进行重组发包,即可实现自动爆破。 ​ ​ ​ ​ ​ ​ 通过黑白名单以及返回包大小的方法来确定是否爆破成功。 ​ ​ 案例 ​http://124.*.*.134:8001​ ​ ​ ​ ​ ​http://124.*.*.244:88​ ​ ​ ​ ​ 后续需完善 经过持续完善,该脚本已可以覆盖无验证码的网站达到十之八九,网站千奇百怪寄望于一个工具完全识别实在是开玩笑。误报率更不能说有多低,不过已经将未爆破成功网站重新加入一个新的列表中,使工具不至于漏报。 完善点 增加验证码识别(这种识别似乎好像不算难做,毕竟有开源的ddddocr,难做的是千奇百怪的验证码返回方式) 可以增加专门在浏览器中输入进行爆破选项,针对加密密码。 其他细节完善。

May 5, 2024 · 1 min · 43 words

漏洞验证工具展望

功能 检索及超融合 fofa检索 hunter检索 quake检索 zoomeye检索 shodan 漏洞细节自定义 自由添加新的组件及漏洞 双数据包可关联(上一个数据包的结果成为下个数据包的请求条件之一) 右键发送到测试界面,用来验证poc可用性,用于调试 相关数据选中编码 漏洞验证 自定义输入测试数据,一键验证 选中父节点时点击验证会验证该父节点下所有子节点漏洞 漏洞验证历史数据,可以查看验证的请求及返回结果,用于部分漏洞溯源 未完善项目地址 https://github.com/nex121/fofa_full_search

September 15, 2023 · 1 min · 18 words

Thinkphpgui项目重置

改造工具链接 https://github.com/Lotus6/ThinkphpGUI 代码结构 ​ pom.xml引入了http请求库​kevinsawicki​ ​ 我们从执行流程处开始研究下代码怎么写的: ​ ​ public static void main(String[] args) throws Exception { // 创建tp_view对象,用于显示ThinkPHP视图 tp_view f = new tp_view(); // 设置窗口居中显示 f.setLocationRelativeTo(null); // 设置当关闭窗口时默认的操作为退出程序 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 将窗口设置为可见,即显示窗口 f.setVisible(true); } 可以看到主程序下面三行都为窗口显示问题,我们跟踪下tp_view对象: ​ ​ 看到tp_view()调用initComponents()方法初始化tp_view对象的组件,接着看下initComponents: ​ ​ 一些常规组件的定义,用的是java.awt​库。 检测按钮调用check_url方法: ​ 查看check_url方法: ​ ​ 首先调用checkTheURL方法,主要检测url是不是以http开头: ​ ​ 如果符合会调用check_url方法: ​ ​ url为url,version为combobox组件选中的文本 当文本等于ALL时,定义一个列表,然后for循环遍历 ​BasePayload bp = Tools.getPayload(v);​ 获取关键字对应漏洞信息。 exploit包里主要是实现了utils包里的BasePayload​接口 basepayload定义了三个接口: 检测接口 Result checkVUL(String url) throws Exception; 命令执行接口 Result exeVUL(String url,String cmd) throws Exception; 获取shell接口 Result getShell(String url) throws Exception; 其中Result为定义的java实例: ​ ​ 主要有三个属性:...

July 25, 2023 · 2 min · 377 words