渗透技巧

又一个MVC对象自动绑定变量导致任意密码重置漏洞案例

又一个MVC对象自动绑定变量导致任意密码重置漏洞案例
本案例在测试客户的WEB系统时遇到,这里做一下复现笔记,记录一种姿势!! 关于MVC的对象自动绑定的说明可以看这篇: http://agrrrdog.blogspot.ru/2017/03/autobinding-vulns-and-spring-mvc.html 复现过程如下: 输入账号,填写验证码 配置burp代理,点击“下一步” 抓包 抓到原始的请求 添加email=hacker@qq.com 发送成功 收到邮件 重置密码: 8.成功重置 思考与讨论: 1. 这种漏洞感觉很有意思,如何做自动化测试或半自动化fuzz? 2. 以后见到JAVA WEB类网站,一定别忘了这种姿势啊!!!不能忘!!不能忘!!! 3. 后来发现,凡是修改信息的地方,这种姿势都能有效,哪么一种越权漏洞就产生了,甚至利用面还有更广的?... 继续阅读 »
渗透技巧

Docker 清理命令集锦[转]

Docker 清理命令集锦[转]
这篇文章主要介绍了Docker 清理命令集锦,需要的朋友可以参考下 杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器 docker rm $(docker ps -a -q) 删除所有未打 dangling 标签的镜像 docker rmi $(docker images -q -f dangling=true) 删除所有镜像 docker rmi $(docker images -q) ~/.bash_aliases 杀死所有正在运行的容器. alias dockerkill='docker kill $(docker ps -a -q)' 删除所有已经停止的容器. alias dockercleanc='docker rm $(docker ps -a -q)' 删除所有未打标签的镜像. alias dockercleani='docker rmi $(docker images -q -f dangling=true)' 删除所有已经停止的容器和未打标签的镜像. alias dockerclean='dockercleanc || true && dockercleani' 另附上docker常用命令 docker version #查看版本 docker search tutorial#搜索可用docker镜像 docker pull learn/tutorial #下载镜像 docker run learn/tutorial echo "hello word"#在docker容器中运行hello world! docker run learn/tutorial apt-get install -y ping#在容器中安装新的程序 保存镜像 首先使用docker ps -l命令获得安装完ping命令之后容器的id。然后把这个镜像保存为learn/ping。 提示: 1.运行docker commit,可以查看该命令的参数列表。 2.你需要指定要提交保存容器的ID。(译者按:通过docker ps -l 命令获得) 3.无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号) 正确的命令: docker commit 698 learn/ping 运行新的镜像 docker run lean/ping ping www.google.com 检查运行中的镜像 现在你已经运行了一个docker容器,让我们来看下正在运行的容器。 使用docker ps命令可以查看所有正在运行中的容器列表,使用docker inspect命令我们可以查看更详细的关于某一个容器的信息。 目标: 查找某一个运行中容器的id,然后使用docker inspect命令查看容器的信息。 提示: 可以使用镜像id的前面部分,不需要完整的id。 正确的命令: docker inspect efe ps目前还在开发阶段,不建议部署到生产环境中,继续观望中。。。... 继续阅读 »
渗透技巧

一个半自动化的命令注入Fuzz工具-OCIFT

一个半自动化的命令注入Fuzz工具-OCIFT
一个半自动化的命令注入Fuzz工具-OCIFT 1. OCIFT是什么 一个半自动化命令注入漏洞Fuzz工具(One Semi-automation command injection vulnerability Fuzz tool)简写为:OCIFT 2. OCIFT有什么用 这是一种半自动化的黑盒测试工具,它可以帮助渗透测试人员或代码审计人员在愉快的上网的同时,深度挖掘目标应用系统存在的命令注入漏洞。 3. OCIFT有什么特点 Payload基于Commix生成方式修改而来(需要持续完善). 基于浏览器代理的半自动化Fuzz. 多线程Fuzz速度快,不影响正常浏览器访问使用. 支持设置白名单限制Fuzz范围. 支持设置黑名单避免带来不必要的麻烦. 支持DNSLog辅助验证 4. OCIFT实现思路 基于Tornado的实现一个代理服务器,解析GET/POST请求提取Fuzz点,带入payload进行Fuzz测试。 文件结构说明 ➜ cifuzz git:(master) ✗ tree . |____run.py 主程序入口 |____dnslog.py DNSLog SDK |____fuzz.conf 配置文件 |____fuzz.py Fuzz线程 |____make_payload.py Payload生成器 |____readme.md 说明文档 5. 配置文件说明 配置各个参数,以逗号分隔 [initconfig] 黑名单HOST-为了避免带来不必要的麻烦 black_hosts =.gov,localhost,127.0.0.1,google,gstatic,cnzz.com,doubleclick,police,mil.cn,gov.cn,gov.com 静态文件黑名单-这些不做Fuzz url_ext_black =.ico,.flv,.css,.jpg,.png,.jpeg,.gif,.pdf,.ss3,.txt,.rar,.zip,.avi,.mp4,.swf,.wmi,.exe,.mpeg 白名单HOST-为了限制Fuzz的范围, 默认为空-表示对除黑名单范围外的所有地址进行Fuzz. white_site =qunar 请求超时-限制每次Fuzz请求超时时间 timeout =10 我的DnsLog地址 my_cloudeye =ano1qu2j.xfkxfk.com 判断是够注入命令执行成功的关键字 checkkeys =110586256,/bin/bash,nameserver,IPv4,Windows IP 用于测试命令注入的基本命令 base_command =cat /etc/resolv.conf,echo 110586256,cat /etc/passwd,ipconfig,ping CommandInj.{my_cloudeye},echo 110586256<nul Fuzz线程数 fuzz_count =20 fuzz的payload类型, 默认False-表示使用自定义的规则 commix_payload_type = False DnsLog登录会话ID,我用的xfkxfk牛的dnslog.xfkxfk.com dnslog_sessionid =q6wva2e3skg79vkdegra2bygft0d1 Your Domain custom_domain =a2fta2j 记录成功结果的Log文件 Logfile =rce_success_results.txt 6.如何使用 1.安装模块 pip install tornado pip install requests 2.根据自己需要完成文件fuzz.conf的配置 3.启用主程序 python run.py 8089 如下图: 4.设置浏览器代理 然后会自动开始Fuzz 7.总结 基本实现了想要的半自动化Fuzz功能 payload还需要不断优化 Github地址:OCIFT地址 欢迎大佬提出改进意见,多谢咯!!... 继续阅读 »
渗透技巧

利用scapy 造了一个Passive DNS Collector 工具—pdns_sniff

利用scapy 造了一个Passive DNS Collector 工具—pdns_sniff
利用scapy 造了一个Passive DNS Collector 工具——pdns_sniff pdns_sniff是什么? 简单理解为一个记录你发起过的DNS请求的东西,利用了Passive DNS 思路,被动的记录发起过的DNS请求。 pdns_sniff有什么用? 利用这样的工具可以帮助我在愉快的上网的同时,轻松搜集到测试目标的各种子域名。 pdns_sniff原理是什么? 利用了python里的强大的scapy套件,运用它抓取,解析出DNS请求包从而得到各种域名。使用了mysql进行数据存储,利用了gevent协程进行并发进行数据包的分析和写入数据库(PS:刚学gevent,拿来用用。) 效果图 效果图一:数据库中记录1 效果图二:数据库中记录2 效果图三:工具输出记录 效果图四:使用方法 需要安装的三方库 gevent scapy MySQLdb 需要修改的数据库配置 大概在第29行 conn = mysql.connect(user='root', passwd='yourpassword', host='127.0.0.1', db='dnslogsDB') pdns_sniff的相关代码 pdns_sniff代码... 继续阅读 »
渗透技巧

执行Shellcode的方法之Jscript.NET

执行Shellcode的方法之Jscript.NET
Execute ShellCode Via Jscript.NET Code: 点击查看Code 参考: https://codegists.com/code/python-execute-shellcode/... 继续阅读 »
渗透技巧

可被PHP解析器解析执行的一些后缀名

可被PHP解析器解析执行的一些后缀名
可被PHP解析器解析执行的后缀名 [一] .php*类 .php. ubuntu 12.04 lts LAMP bypass with .php. .php3 .php4 .php5 .php6 .php7 [二] .ph*类 .pht .phtm .phtml [三] 解析漏洞类 .php.gif .jpg%00.php 参考... 继续阅读 »
渗透技巧

树莓派开机执行脚本制作

树莓派开机执行脚本制作
树莓派设置开机启动脚本 1.创建文件 在 /etc/init.d/文件目录下,创建一个文件用于开机启动SS5,内容如下: pi@(none) /etc/init.d $ cat ss5server case $1 in start) sudo sslocal -c /etc/shadowsocks.json ;; stop) killall ss5server ;; *) echo "Usage: $0 (start|stop)" ;; esac 2.修改执行权限 chmod a+x ss5server 3. 启用开机启动 sudo update-rc.d grabjpg defaults 4. 关闭开机启动 sudo update-rc.d grabjpg remove 参考: http://blog.csdn.net/wanghelou123/article/details/52839214... 继续阅读 »
渗透技巧

Mac OSX下给树莓派安装Raspbian系统

Mac OSX下给树莓派安装Raspbian系统
Play Raspbian With My Mac. 安装过程 下载镜像 Download latest version of wheezy for PI 插入SD卡,用df命令查看当前已挂载的卷: 查看: df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1 233Gi 205Gi 27Gi 89% 53817336 7168006 88% / devfs 186Ki 186Ki 0Bi 100% 645 0 100% /dev map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home /dev/disk2s1 56Mi 14Mi 42Mi 26% 512 0 100% /Volumes/boot 可能会有叫:/dev/disk1s1的,使用diskutil list命令进行确认 /dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.9 GB disk2 1: Windows_FAT_32 boot 58.7 MB disk2s1 2: Linux 15.9 GB disk2s2 ➜ ~ 这里的disk2s1、disk2s2之类的。使用diskutil unmount将这些分区卸载: diskutil unmount disk2s1 diskutil unmount disk2s2 写入系统镜像 使用dd命令将系统镜像写入,需要特别特别注意disk后的数字,不能搞错! /dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.9 GB disk2 1: Windows_FAT_32 boot 58.7 MB disk2s1 2: Linux 15.9 GB disk2s2 ➜ Rapi diskutil unmount /dev/disk2s1 Volume boot on disk2s1 unmounted ➜ Rapi diskutil unmount /dev/disk2s2 disk2s2 was already unmounted ➜ Rapi diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *251.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_CoreStorage Macintosh HD 250.1 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 (internal, virtual): #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS Macintosh HD +249.8 GB disk1 Logical Volume on disk0s2 6F9A7C1D-3392-4F15-99BA-28C480A99E32 Unlocked Encrypted /dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.9 GB disk2 1: Windows_FAT_32 boot 58.7 MB disk2s1 2: Linux 15.9 GB disk2s2 ➜ Rapi sudo dd bs=4m if=2015-05-05-raspbian-wheezy.img of=/dev/disk2 781+1 records in 781+1 records out 3276800000 bytes transferred in 1302.873775 secs (2515056 bytes/sec) 经过20多分钟的等待,终于刷好了! 卸载 ➜ Rapi ➜ Rapi diskutil unmountDisk /dev/disk2 Unmount of all volumes on disk2 was successful 安装mysql sudo apt-get install mysql-server 安装aircrack-ng套件 pkg-config --libs libnl-1 libnl-3 make clean sudo apt-get install pkg-config apt-cache search libnl3 sudo apt-get install libnl-3-dev make sudo apt-get install libnl-genl-3-dev make sudo make install clear... 继续阅读 »
渗透技巧

攻击欺骗技术分享

攻击欺骗技术分享
攻击欺骗技术分享-老马哥 安全攻防背景 企业普通员工-(信息泄露) 信息泄露(互联网应用,云服务) 企业安全团队-(疲于应对安全事件) 各种数据/业务/网络/应用/系统方面的安全漏洞、安全合规等 攻击者 攻击者视角基于目标,手段不限.防守者视角基于经验,常常受限于执行力不足. 常态:渗透成功率100% 原因:1、意识不足 2、管理疏忽 3、信息泄露 4、防御基于攻击行为,总是被动挨打。 安全现状-攻防失衡       1、黑客的肆无忌惮        2、安全人才不够       3、司法打击难       4、。。。。。。。 提出问题:有没有新的思路? 攻击欺骗技术原理 定义:利用欺骗手段阻止或摆脱攻击者的认知 效果:扰乱自动化工具、延迟攻击行为、攻击计划 简单理解:构造陷进,引入陷进,发现攻击行为,隔离攻击,取证,上报司法?? 何为欺骗?钓鱼网站、电信诈骗 哪些人不会被欺骗?没有需求和动机、具备一定认知、伪造的目标现实中就不存在 总结: 欺骗的原理 内因:主观意识和认知、行为习惯 外因:从外部接收到的事物信息 在行动过程中,因内因或外因超出了主观意识对事物的认知和判断能力,导致行动决策出现错误——欺骗成功 攻击欺骗技术的应用-云舒 应用场景:工控安全、黑客攻防、业务安全、其他 欺骗的对象: 攻击者 产品:幻盾,基于攻击混淆与欺骗技术的威胁情报产品。在黑客的攻击路线上,构造陷进。 处理:阻断和隔离攻击,溯源身份及攻击意图。 工作原理: 工作流:|克隆业务|-|伪装漏洞|-|虚拟系统|-|脱敏数据|-|记录行为对应攻击过程:|踩点 |-|找漏洞|-|入侵系统|-|偷数据|-|清理痕迹|一些不一样的点:能提取出自动化攻击行为,人的攻击行为。 举例: 第一天10万次自动化攻击行为 第二天100次人工精准的漏洞利用行为 人的精准化攻击行为威胁度更高,因为攻击是经过筛选自动化扫描后的信息。 **与蜜罐的区别??*** 模拟一切业务 * 与核心业务互相嵌入,悄无声息的转移攻击 * 节点间错综复杂,自动关联,减缓攻击行动。 默安公司介绍 bla bla... 继续阅读 »
渗透工具

Mac下玩耍 mitmproxy 笔记[持续补充~]

Mac下玩耍 mitmproxy 笔记[持续补充~]
Mac下玩耍 mitmproxy 笔记 1.0版本下载地址: 主要的3个文件: mitmdump mitmproxy——启动代理服务 mitmweb——web可视化界面的 如下图: 使用前的配置: 1. 配置环境变量 关于Mac下设置环境变量方法,可以参考这篇文章 配置方法 配置好环境变量后,简单验证如下: 打开终端,输入命令启动mitmproxy: mitmproxy -b 127.0.0.1 -p 8080 此时可以看到终端变成这样: 2. 配置HTTPS证书 和使用burp进行代理抓包一样,MITM也需要安装自己的证书以便抓取HTTPS的请求包。配置浏览器的代理为:127.0.0.1 端口:8080 然后打开URL地址: http://mitm.it/ 下载安装对应的操作系统证书,下面文字介绍的是如何在Mac上安装MITM证书: Apple: How to install on macOS / OSX Download PEM file (from above link) Double-click the PEM file The "Keychain Access" applications opens Find the new certificate "mitmproxy" in the list Double-click the "mitmproxy" entry A dialog window openes up Change "Secure Socket Layer (SSL)" to "Always Trust" Close the dialog window (and enter your password if prompted) Done! 对应翻译: 如何在macOS/OSX系统上安装证书: 下载PEM文件(从上面的链接) 双击PEM文件 打开“钥匙串访问应用程序 在《许可证》的mitmproxy”列表中 双击“mitmproxy”条目 弹出对话窗口openes 变化的安全套接字层(SSL)”到“永远的信任” 关闭该对话框窗口(如果你的密码和输入prompted) 这样做的! 配置后: 3. 测试MITM证书是否可用: 抓取京东登录站(https://passport.jd.com)的https请求 4. 学习MITM的命令: 启动命令: -b: 监听的地址 -p: 监听的端口 mitmproxy -b 0.0.0.0 -p 8080 查看抓包 上下选择[j/k]或者 方向键 上/下 直接回车便可以查看指标所选定的包或者鼠标点击那个位置 Tab键,切换:Request/Response 或者鼠标点击 当要查看的Response的数据很多时,输入“m”切换展现形式 mitmproxy修改抓包 在Enter进入指定的包后,输入“e”然后选择编辑的位置 拦截Request 输入字母“i”(代表Intercept filter)即可,此时界面便会让你输入想要拦截的条件: 这里的条件可以是字符串:admin 当出现被拦截的对象时,就会是标注颜色的: 如下: 然后是Enter进入选择的包,然后e 修改,最后q退到主页,然后a放行修改后的请求。 mitmproxy 拦截response 输入i,然后输入~s 就会拦截响应 拦截所有的request: ~q 拦截特定的header: ~h 拦截特定的domain: ~d 拦截特定的响应代码(404之类的): ~c... 继续阅读 »