判断是否成功将Jquery库引入,如果没有成功引入则引入本地Jquery库 代码人生

这里我用的是引入emlog的主题/插件本地Jquery库做的例子。多了就不说了,直接上代码:


<script  src=http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js></script>
<script type="text/javascript">
//<![CDATA[
//判断是否成功将Jquery库引入,如果没有成功引入则引入本地Jquery库
if (typeof jQuery == 'undefined') {document.write("<script type=\"text/javascript\" src=\"https://mrxn.net/content/templates/MrxnWeb/js/jquery.min.js\"><\/script>");}
//]]>
</script>

或者有更短一点的:

<script src=http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js></script>
<script type="text/javascript">
//<![CDATA[
//判断是否成功将Jquery库引入,如果没有成功引入则引入本地Jquery库
!window.jQuery && document.write("<script type=\"text/javascript\" src=\"https://mrxn.net/content/templates/MrxnWeb/js/jquery.min.js\"><\/script>");
//]]>
</script>



admin 发布于  2016-4-4 14:07 

利用d3.js对大数据资料进行可视化分析 网络安全

作者: Anthr@X  [email protected]

0x00 背景


对于前段时间流出的QQ群数据大家想必已经有所了解了,处理后大小将近100G,多达15亿条关系数据(QQ号,群内昵称,群号,群内权限,群内性别和年龄)和将近9000万条群信息(群号,群名,创建时间,群介绍),这些数据都是扁平化的2维表格结构,直接查询不能直接体现出用户和群之间的直接或者间接关系。通过数据可视化,可以把扁平结构的数据作为点和线连接起来,从而更加直观的显示出来从而进行分析。

d3.js是一个近年来推出的基于javascript的数据展示库,全称为Data Driven Document, 在浏览器数据展示领域的地位类似于通用js框架里的jQuery。d3.js的官网是d3js.org,大家可以在上面看到很多例子和应用。d3.js也是图形数据库neo4j所内置的数据展示工具。

说到图形数据库,其实正确的翻译应该是图数据库,图即所谓的Graph,来自于数学里的图论,比如四色定理和推销员过桥的问题(著名的NP问题之一)。图数据库着重于数据之间的关联和属性,对于关系错综复杂的关系分析效率很高。例如,我想知道谁是我朋友的朋友,并且他们有哪些朋友也认识我。对于这种问题,普通关系型数据库的计算复杂度是O(N^c)左右或者更高,N为选择范围的数据集合大小,你好友数量加上好友的好友的数量等,c为关系层数。图数据库的计算复杂度在O(N^2)左右或者更低,但是基本不会超过O(N^2)。图数据库对于复杂关系数据查询起来效率高的主要原因是在数据输入的时候就已经对关系进行了处理和索引,这样做在查询的时候具有很高的效率,但是在数据导入的时候会很慢。QQ群的15亿个关系在向图数据库neo4j里导入的时候花了3天都没弄完,也没有进度提示,所以后来我直接放弃了。

0x01 数据处理


在QQ群和群成员关系里面,对于层数我是这么定义的:

第1层:目标QQ加入的所有群  
第2层:目标QQ加入的所有群的所有成员  
第3层:目标QQ加入的所有群的所有成员加入的所有群  
.  
.  
.  

大家可以看出这样的查询是可以递归的,假设每个QQ号所加入的群数量和每个群的成员数量为N,那么查询3层数据时总计算量为N*N*N=n^3,所以当查询层数为c层的时候,计算复杂度是N^c。

前面说过,图数据库的计算复杂度一般在N^2以下,所以当使用普通的关系型数据库的时候,如果查询的层数不多,效率和图数据库比起来差不多,加上关系数据库自带的便于管理和导入导出的属性,所以我还是选择了mysql数据库。

对于QQ和QQ群之间的关系,每个QQ号都能加入群,一个群里也有很多QQ,基本都在几十到几百人,所以两个QQ号在同一个群里不一定代表他们的关系很紧密,换句话说QQ和QQ群之间的关系相对于QQ好友而言相对较弱。但是这并不代表我们从中不能分析出有用的资料,俗话说的好,大数据就像一座金矿,只有用力挖才能挖到金子。

d3.js支持多种数据格式,比如JSON,XML,CSV,HTML等,因为PHP的数组可以很简单的转换为JSON格式,所以我选择用PHP写API来获取JSON数据。QQ和QQ群是一种典型的图数据的应用,QQ和QQ群作为节点(node),QQ加入了哪些群作为关系(link),d3.js内置了一个功能很强大的内建布局,叫做Force-Directed Graph(受力导向图),后面简称为force。force布局模拟了一些基本的物理粒子原理,比如引力和斥力(确切的说是模拟了电磁力和引力,在离的远的时候会互相吸引,在离的近的时候斥力急剧增加),并且可以调节力的大小和受力距离等等,可以说是自由度相当高。关于d3.js的force布局,在官网有详细的API和不少例子,这里我就不贴代码了。

在force布局里面,数据源的JSON可以有很多种不同的格式和属性,但是基本格式如下:

{"nodes":[{"num":10001,type:"qq"},{"num":12345678,type:"qun"}],"links":[{"source":"10001","target":"12345678","auth":1,"nick":"pony"}]} 

其中nodes数组对应的是节点列表,links对应的是关系列表。

每个节点可以有很多自定义属性,在d3.js可以针对每个节点存取节点的属性,比如我定义num是QQ号或者群号,type代表节点是QQ还是群,另外我在js里设定在type==‘qun’的时候显示群的图标,是qq的时候显示qq的图标。关系里面默认的属性有source和target,分别对应一个关系的两头,默认情况下关系里面的source和target对应的数字是节点在节点数组里面的位置index。但是我自定义成了qq号和群号。另外你也可以定义其他属性,比如auth代表这个QQ号在群里的权限,nick是群昵称。

对于QQ群这样的关系来说,基本上在第4层和以上的QQ和群的关系就比较弱了,所以为了提高查询速度和减少节点数量,我只查询2层关系(少么?不少,要想想有些群有超过500人……)。

首先,d3.js需要在浏览器里面运行,我的首选是Google Chrome,V8引擎的效率果然不错,在节点和关系不多的时候基本感觉不到延迟,后来在FF和IE11里面测试了一次,FF比Chrome卡一半左右,IE的话我只能呵呵了……

先拿小马哥做个测试,QQ号是霸气的10001。当d3.js导入完数据JSON的时候,各种节点会在屏幕上乱飞几秒钟,直到他们的力达到一个稳定的平衡点。结果如下:

说明:

企鹅图标的节点代表QQ,群图标的节点是群(废话么)。  
每条线代表一个关系,一个QQ可以加入N个群,一个群也可以有N个QQ加入。  
线的颜色分别代表:  
土豪金:群主  
狗腿绿:群管理员  
屌丝蓝:群成员 

大家也可以看到,群主和管理员的关系线也比普通的群成员长一些,这是为了突出群内的重要成员的关系。

图标旁边自动标注了QQ号和群号,如果有的话还有群名。没有在QQ号旁边标注昵称是因为很多人加入不同的群使用的是不同昵称,所以把昵称放到了其他的地方显示。

在下图中大家可以隐约的看到,所有的关系都是以QQ 10001为起点的。

0.png

在图上节点是可以拖拽的,拖拽后会固定在你释放的地方。我们把几个群稍微拖的分开一点,关系就一目了然了1.png

这个时候我们可以看到在目标的QQ群里也有很多共同QQ号,比如有些QQ号同时加入了2,3个群。群名显示的都是各种产品开发讨论群,这些同时加入2,3个产品群的人估计不是产品经理就是主管吧……

2.png

鼠标悬停到群图标上可以看到群的详细信息(如果有的话)

3.png

因为很多人在不同群里的昵称不一样,所以群内昵称等信息就只能放到link上面了,因为线比较细,所以鼠标比较难对准,这个功能还待修改。

这个家伙和小马哥一起同时在3个群里,好基友?

4.png


小马哥的QQ群信息展示完了,下面我们来看看更加实际的应用,比如把某圈子里的人找出来。我们先从某土豪大黑阔大牛的QQ号入手:

初始数据好多……此大黑阔加入的群够杂的,不过就是因为杂所以才能更深入的了解一个人的所有喜好。看看群名神马的,我好像看到了dota,XX国际俱乐部,web技术交流,XXsec等群……充分说明了此人……是个屌丝技术宅大黑阔,XX国际俱乐部又似乎带着那么种高大上的感觉……

图中错综复杂的各种关系组成了一朵朵盛开的菊花,向我们诉说着他的历史……

5.png


为了理清他那不堪回首的过去和关系网,我特地把浏览器窗口拖到第二个屏幕上,然后把群挨个分开。为了保护当事人的隐私,这张图我打码了。

这张图比较宽,建议大家下载下来放大看

6.png


0x02 总结


假如把层数扩展到4层,不知能否筛选出中国所有黑阔的QQ号呢?至少我已经在这张图里看到了很多熟悉的名字和号码。

腾讯总是说漏洞早已修复,不存在问题了,广大网民放心,但实际上信息泄露这种事情,岂是你漏洞修复好了就结束了的事情?

注:转载自乌云文库,原作者为QQ群关系查询站的站长 --- insight-labs ,原文地址:http://drops.wooyun.org/tips/823


admin 发布于  2016-4-2 18:32 

互联网黑市分析:社工库的传说 业界新闻

任何一个行业都是一个江湖,有江湖就有故事,追名逐利的人喜欢被写入故事,踏实做事的人却希望被隐匿。久而久之,江湖上的故事越来越虚名浮利,听故事的人也越来越坐井观天。岂不见无数江湖武侠小说,开篇的人物总是让我们误以为是江湖大侠,看着看着才发现一山更比一山高,到最后才发现开篇人物简直是不入流的小啰啰。而真正的高人,反而隐匿成传说。

互联网行业也是如此,大家喜欢创造故事,故事也越来越千篇一律的浮躁:什么产品上线7天就几百万用户、什么开发阶段就上亿投资、什么90后霸道总裁颠覆行业、什么大咖的内部分享、从xx看xx的四大趋势、从xx看xx的十大价值、xx的专注力、xx的微创新、xx的平台化、xx的独家专访首次讲述xx辛酸、xx概念的深度解析加独特见解,等等。翻来覆去,好像也就是那么多东西了。

就好像有些江湖人士,是需要靠卖艺为生,请个会吆喝的帮忙吆喝吆喝,弄个猴子上蹿下跳一下,响啰使劲的敲几下,骗骗几个外行人,撒点碎银子,仅此而已。接下来大家再接着吹嘘一番,比比谁拿的碎银子多点,动口不动手。长期以往,有些人招摇撞骗,也竟然成为了一代口碑中的大侠。久而久之,如今很多江湖人士只是卖艺拿贵客的碎银子为生,如何卖艺卖的更好是大家追求的目标。那些内功心法,武功秘籍,也都成为了历史,那些大侠们,也成为了传说。

难道江湖不再是那个江湖了么?其实不然,浮躁沉沦的只是江湖白道,只是这些大内侍卫,镖局镖师,衙门捕头而已。而江湖黑道中,黑客技术、海盗精神,继续被追捧,虚浮的商业模式永远不如深度技术被重视,“铁甲依旧在”的情怀还在回荡,而地下产业链相关的进步也在不断的深入,并且潜伏起来暗自发展,为了更大的目标和黑暗梦想。

什么是社工库

社工库是社会工程学数据库的简称(Social Engineering Data)。

提到社工库就必须先介绍一下社会工程学(Social Engineering),这个名词最早是在2002年由传奇黑客米特尼克(Kevin David Mitnick)在提出,但其初始目的是让全球的网民们能够懂得网络安全,提高警惕,防止没必要的个人损失。由于米特尼克在黑客界的传奇地位,很快社会工程学就开始被深入研究并且发扬光大。

社会工程学,准确来说是一门艺术和窍门的集合。它利用人性的弱点、心理的缺陷,以顺从意愿、满足欲望的方式,让人们上当,或以此为入口进行攻击。社会工程学的窍门也蕴涵了各式各样的灵活的构思与变化因素,利用人的弱点如人的本能反应、好奇心、信任、贪便宜等弱点进行攻击。它集合了心理学、社会心理学、组织行为学等一系列的学科,由于其非法性和在很多国家地区都被严厉的打击,社会工程学也变成了一个见不得光的学派。

但是在黑客群体中,社会工程学就是他们的第一方法论和必修课。离开了社会工程学,黑客们运用的网络技术几乎都没有用武之地。如果我们用黑客最喜欢的海盗来比喻,各种网络技术可以比作航海、游泳、剑术、而社会工程学即是海盗们的行为准则和创新指引。

那么什么是社会工程学数据库(社工库)呢?即黑客在运用社会工程学进行攻击的时候,积累的各方面数据的结构化数据库。简单的说,社工库是黑客用来记录攻击手段和方法的数据库,这个数据库里面有大量的信息,甚至可以找到每个人各种行为记录(每个人在每个网站上的账号、密码、分享的照片、信用卡记录、订的机票记录、通话记录、短信内容、各种社交软件的聊天等等包罗万象),比如之前有很火爆的查询开房记录的数据库,就是一个典型的极简单的社工库的例子。

那么社工库又是如何产生的,在国内的互联网地下产业链中,又是什么模式的存在,发展又是什么情况呢,我们接着分析。

社工库的发展:数据盗窃

既然是传说,背后就有很多故事,说到社工库的产生和发展,我们就得先从互联网的数据窃取与交易开始说起。

互联网用户数据泄露一直是行业关注的焦点,从最近的京东用户密码泄露事件,到之前的CSDN的数据库完全爆出,再到如家酒店的用户数据泄露,网站和黑客在用户数据上一直在进行着旷日持久的攻防战。但是爆出来的数据泄露,仅仅是冰山一角,甚至也不到。而且这些信息其实对于黑客来说,根本没有什么价值。而对于用户来说的危害,也没有想象的那么大,因为大多数时候这些数据在黑市中几乎都已经是半公开的性质了。

而数据窃取与交易这个细分领域也几乎是地下产业链隐藏的最深的一部分,很多在互联网地下产业链中沉寂了多年的大佬都并不了解此道的相关信息。绝大多数被盗窃后的网站数据,并不会公开与众,只是交易后进入到地下产业链的其他环节而已。所以目前到底有多少网站的数据已经被窃取我们没法客观的进行数据分析。但在互联网黑市中,大家说起来类似的问题,常用的一个词是“十墓九空”,也许这个说法有点夸张,但是也可以参考。

我们从2009年以来,通过黑市的舆情监控和专业网络调查,对互联网每年的流量排名前100的网站(刨去没有用户账号机制的)进行调查,结果如下:
02.png

数据窃取产业虽然隐藏的非常深,但是发展历史永久,地下产业链也随之成熟,对于如何把数据变成货币,已经有了非常完整的程序的分工协作渠道。而其模式相对简单,一般只包括:脱库、洗库、撞库这几个阶段。

在地下产业术语里面,“脱库”是指入侵有价值的网络站点,把数据库全部盗走的行为,因为谐音,也经常被戏称作“脱裤”。在取得大量的用户数据之后,黑客会通过一系列的技术手段清洗数据,并在黑市上将有价值的用户数据变现交易,这通常也被称作“洗库”。最后黑客将得到的数据在其它网站上进行尝试登陆,叫做“撞库”,因为很多用户喜欢使用统一的用户名密码,“撞库”也可以是黑客收获颇丰。

在早期的数据窃取过程中,这几个阶段几乎都是由同一个团队、甚至单个人来完成的。发展到今天,已经完全细化成产业链,很少有人从脱库、洗库一起做了,而变成:定制化模式,或交易化模式。

定制化模式:就是现有下游客户指定的某一家网站,然后聘请黑客去脱库,脱库后获得佣金的模式,在定制化模式中,有很强的黑产规矩即数据属于下游客户,而黑客不可以再次出售,或者在一定的窗口期内不能再次出售。

交易化模式:黑客去某一家网站脱库,脱库后直接在黑市上寻找下家,在这种模式下一般可以反复出售,但是由于风险较大,而且数据真实度和新鲜度不一定能得到保证,又充满了骗局,越来越没落了。

而下游客户定制某特定一家网站的脱库,是怎么盈利呢?

大多数时候,都是竞争对手或者上下游企业采购,而且大多数都是主流互联网产业链中的客户,甚至是传统企业客户。其实这个模式很简单,想一想在生意场上,这家网站的数据库对谁谁有利,谁就可能是潜在的定制客户,只不过由于很多主流互联网企业或者传统行业很少了解这个地下产业,所以就会有一些中间人,来做中介促成相关的生意,而这些中间一般情况就是黑市里面的买家或者定制客户了。
我们用实际的例子说明:M哥在黑客圈小有名气,技术过硬。某互联网医疗产品最近要拿投资,深度用户不够啊,通过中间人,辗转的找到了M哥。M哥奋战了几天,直接脱裤了几家三甲医院的网络挂号系统,历史数据应有尽有,结构化分类一应俱全。M哥到手200w,中间人到手300w,而这家互联网医疗产品由于用户的激增和数据的全面性,以及对应新产品的虚假运营,多拿来1000w的投资,绝对双赢。
03.png
社工库的发展:洗库撞库

如之前分析,不管数据如何贩卖交易,卖给谁,怎么卖,最后黑客手里面还会有一份数据,由于黑市一般都采取定制化交易,黑客们不能再次出售了,所以一般情况下黑客们会用这份数据进行洗库撞库再洗库操作。

洗库主要是清洗这些数据中可以直接变现的部分,但是这样可以直接洗库的就能洗出价值的数据,其实并不多。一般都是有预存款或者虚拟物品交易的数据库才能洗出来价值,例如:游戏账号、电商账号等等。

更多的时候,黑客将得到的数据在其它网站上进行尝试登陆,叫做“撞库”,因为很多用户喜欢使用统一的用户名密码,“撞库”其实可以收获颇丰。而撞库和洗库的过程是配合的,黑客使用自己开发的工具、直接数据库匹配登录技术以及配合黑色产业链中的打码机制(之前TOMsInsight报告中有介绍)可以对很多网站进行批量撞库,一旦成功,可以进行再次洗库。

这就好比黑客们拿到了一份没什么价值的网站的全部用户名和密码,没关系,可以用这份用户名密码来尝试着登录有价值的网站嘛,如果能登录,不就可以洗出来价值了么,我们还是继续看M哥的例子。
M哥卖掉了几家三甲医院患者的挂号数据,虽然到手200w,但是也不满足。想想这几百万条数据,应该还会有别的价值吧。但是M哥又是一个传统的讲道义的黑客,不会再次出售给别的买家。只能从这些数据本身来找到价值了。

M哥尝试用这些数据登陆QQ、京东、支付宝、淘宝、各类网游,从而洗掉里面的资产,但是由于各种网络的安全策略的保护,M哥虽然有收益,但是却不多,甚至都不够自己的洗库撞库的网络成本,于是M哥继续沉寂下来,这一沉寂,开辟了一个传说。

社工库的发展:构建传说

在很多时候,社工库都是一个传说,就像海盗里面流传的那笔谁也不知道的宝藏,只有那块已经不知道转了多少手的脏兮兮的残缺的藏宝图才预示着它的存在。但是社工库却又很客观的放在那里,一直存在,一直沉寂。

除了贩卖数据本身得到金钱上的利益之外,黑客还会把得到的数据进行整理,制作成社工库。社工库是一个积累的过程,也需要大量的人力物力的去建设,同时还是一个漫长的过程。开始的时候就像M哥一样,单兵作战的去积累,今天是三甲医院的数据库,明天是旅游网站的数据库,后天的演唱会订票网站的数据库,这些数据库积累越来越多。

M哥后来遇到了V哥,V哥是同行,手里面也有很多数据库,可以和M哥互补,两人一拍即合,把双方的数据库融合起来,内容变得更丰富。而且两个人不断的进行分析维护,排除噪点数据和没有价值的数据,相互关联,刻意的去丰富一些必需的数据字段:比如QQ号和密码、比如手机号、比如身份证号。再刻意的去交换购买补充一些极其有价值的,比如征信报告。

社工库的内容越来越丰富,而M哥和V哥两个人力量还是小,两人刻意的去联合同行,组成利益联盟,把手里面的数据都放到一个社工库,组织力量去维护去分析。

这是一个放大的效应,由于社工库的日益庞大,信息的日益完善,再加上时间的沉淀,很多数据都可以慢慢地浮出水面,可以获得相当多的信息。目前有一些公开的社工库,信息全面性和对于用户隐私的了解以及让人震惊,但是这才是仅仅公开的社工库,对于黑客们来说其实已经是没有价值的信息。真正地下的社工库的数据信息丰富程度要远远更大,也绝对隐匿。

利用社工库,几乎可以暴漏出一个网络用户的全部网络行为、大量的用户隐私,和一些牵扯到个人身份财产的相关的数据信息。

首先让洗库变得更加容易:由于数据量很大信息很全,很多的账号的的虚拟财产的转移就不像之前那么困难,了解到信息之多甚至都可以伪装成这个用户去进行操作了。

其次让各种诈骗变得简单:之前大多数诈骗都是光撒网模式,而社工库的完善后,可以非常有针对性对一些特定的用户进行诈骗。利用数据技术,甚至通过木马分析一些用户QQ聊天的内容,寻找有价值的目标,和相对更信任的关系网络。这种模式风险会更小,而且由于诈骗目标相对较大,收益更大。在这种模式下,完成技术分析工作的一般是黑客,但是最后完成诈骗的却一般不是,黑客把按照客户要求去分析,最后把可以完成某种特定诈骗的目标连通相关信息出售(黑市称脚本)。

最后社工库也成为地下产业链的基础服务商:全面的社工库基础数据,也是精准的流量获取来源,成为流量获取分发的地下产业链的基础服务和大数据服务商。一些特有的黑色产业目前非常依赖社工库,例如精准定位的赌博平台、一些p2p金融类型的诈骗、或者是一些商业骗术。

社工库还可以进行网络的定向攻击,有时候一些不懂行的人进入互联网,糊里糊涂的就被骗的搞的一塌糊涂,互联网并不简单,简单的是那些幼稚的主流科技媒体,真正的中国互联网行业水很深,深到还没有外企可以成功的地步。

而社工库也在不断的扩大,丰富,并且继续沉寂。

社工库的发展:未来趋势

从2013年以后,国内互联网黑市上的数据交易产生了严重的分层:一些大的数据盗窃团伙早已经完成早期的数据积累构建非常完善的社工库,对于一般的数据定制需求都不会再接,会专注于更深度变现更强的金融诈骗;而一些小的数据盗窃团伙还在不断的相互交易、交换数据、而且相对高调的浮出水面,其实危害反而没有那么大。

而且出于用户交互方面的考虑,目前越来越多的移动终端支付或者金融产品的安全策略略浅,再加上更丰富的网络电商活动,导致沉寂在黑产中的数据危害也越来越大。这可能也会是更多的互联网产品的设计时需要考虑的问题所在。

而真正沉浸起来的社工库,一方面已经成为传说,另外还在构建着自己未来的目标,这些才是真正危害,也是对于我们最大的威胁。我们TOMsInsight分析到此很矛盾:在这个主流互联网都在炒作概念玩击鼓传花的骗术,而地下互联网都在积累的年代,也许我们真的应该沉下心去仔细的去研究去分析去洞察,而不是人云亦云。

“暴漏出来的社工库都是小孩玩的,真正有价值的社工库谁也不会暴漏,都在沉寂”, M哥对我们TOMsInsight的调研员说到“有时候真的看不懂现在主流的互联网,拿几百万投资就嘚瑟的不得了,其实就是不入流的卖艺打赏呗,小孩过家家。我们这行很多人都能一天赚出来这个投资数的现金来,反而继续去沉寂,沉下心钻研,为了未来更大的打算。“ M哥的话有些绝对了,但是在某种程度上也值得我们反思。

给我们的启示

江湖的故事会继续,传说也会继续。有些人可以选择视而不见,有些人也会选择去逃避。但是冬天始终都会到来,冷暖自知。我们不能要求每一个互联网人都踏实下来,毕竟一些浮躁的跟风卖艺求打赏也会是很多人的生存之道,但是我们应该知道,江湖并不是由他们构成,那些传说,也都和每一个故事一样的真正的存在我们的身边。

当一个行业的地下产业比主流产业更踏实,看的更长远,也更注重积累的时候,也许很值的我们所有的从业人员反思。毕竟,传说应该属于真正的英雄!


admin 发布于  2016-4-2 12:42 

利用 iptables 折腾安全的服务器环境 Linux

0x00 概述

iptables 是 Linux 内核集成一套包过滤系统,并且可以实现状态防火墙,建立精细的包过滤列表,功能十分强大,所以选择折腾 iptables 来实现防火墙。

iptables 一共有 4 个表:filter,nat,mangle,raw,5 个链:INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING

功能

  • filter:实现防火墙一般的数据包过滤功能。(默认表)
    • Chain: INPUT,OUTPUT,FORWARD
  • nat:网络地址转换。
    • Chain: PREROUTING,POSTROUTING
  • mangle:修改数据包。
    • Chain: INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING
  • raw:不让 iptables 做数据包链接跟踪,提高性能。
    • Chain: PREROUTING,OUTPUT

0x01 简单应用

iptables 有基础的命令还有可选的模块,在 Terminal 中直接可以使用man iptables查看 iptables 的 man page (Online)。

清除现有 iptables 规则:iptables -F or iptables --flush(清除 Chain 中的所有规则,可以加上 -t or --table 指定某个表,不指定则清除所有)。iptables -X or iptables --delete-chain(删除所有用户自定义的 Chain ,即通过 -n or --new-chain 增加的 Chain )。iptables -Z or iptables --zero(清空封包计数器)。

设定默认策略:不符合任何一条规则的时候,按照设定好的默认策略处理,最安全的就是全部 DROP ,再单独添加例外,添加 DROP 的默认策略必须在 Console 下,不然 Terminal 会掉。

iptables -p INPUT DROP iptables -p OUTPUT DROP iptables -p FORWARD DROP 

-p or --policy是为 Chain 添加默认策略。iptables 默认都是 ACCPET 的,如果需要删除此限制,改回 ACCPET 即可。

设置了 DROP 的默认策略之后,必须添加允许回环!

iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT 

-i or --in-interface 是定义入网 NIC 的,表示数据包从何进入,可以使用加号+作为通配符,比如 eth+ 表示所有的 eth,也可以用感叹号 ! 进行排除匹配。

部分版本的 Linux 需要重启 iptables 服务才能生效(server iptables restart or/etc/init.d/iptables restart),我使用的是 Debian,现在 Debian 已经是实时生效 iptables 的了,不需要重启服务。也可以使用iptables-save > /home/iptables.rule导出 iptables 规则,到时候再使用 iptables-restore 恢复。

开启允许通过的端口:如果刚刚上面设置了默认 DROP 策略,现在就要来设置例外规则了,不然任何流量出入都会被丢弃了。现在来开个 SSH(22)端口。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --sport 22 -j ACCEPT 

-A or --append 新增一条规则,默认是最后一条规则,如果需要插入优先级别更高的可以使用 -I or --insert-p or --protocol 是指定协议,常见协议有:tcp,udp,icmp,igmp等,可以使用 all 匹配所有协议,在协议名称前加感叹号 !表示排除此协议,如 !tcp 表示除了 tcp 协议以外的协议。--dport or --destination-port 是目的端口,限制要访问的目的端口,可以用 : 号表示范围,比如 1:100 表示 1 - 100 端口。--sport or --source-port 是来源端口,使用方法和目的端口一致。-j or--jump 代表了处理动作,常见处理动作有:ACCEPT,REJECT,DROP,REDIRECT,MASQUERADE,LOG,DNAT,SNAT,MIRROR,QUEUE,RETURN,MARK等,ACCPET 代表放行,REJECT 代表拒绝,DROP 代表丢弃,其他更多的说明请参考 man page。

如果要限制允许访问的 IP 来源地址,可以用 -s or --src or --source 来限制。

iptables -A INPUT -s 8.8.8.8 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m iprange --src-range 8.8.8.1-8.8.8.10 -p tcp --dport 22 -j ACCEPT 

来源地址可以是单个 IP 地址,也可以是地址段 8.8.8.0/24 这种格式,如果要限定范围就需要用 -m iprange --src-range 加范围限制,地址也可以使用感叹号 ! 进行排除匹配。

要开放常用端口,也可以使用 -m multiport --dport 参数。

iptables -A INPUT -m multiport --dport 21,22,80,3306,8000:8999 -p tcp -j ACCPET 

禁止 ping:ping 是基于 ICMP 协议的,所以禁掉 ICMP 包就 OK 了。

iptables -A INPUT -p icmp -j DROP iptables -A OUTPUT -p icmp -j DROP 

但是,用这种方式禁用掉 ICMP 协议,服务器就不可以发起 ping 请求,我们可以利用状态防火墙的特性,根据状态来过滤。先删除旧的策略。

iptables -D INPUT -p icmp -j DROP iptables -D OUTPUT -p icmp -j DROP 

-D or --delete 是用于删除规则,输入完整的策略即可删除。

iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT 

--icmp-type是用于定位 ICMP 数据包的类型,可以使用 iptables -p icmp --help 查看详细定义或者在 man page 中查看。这里选择 DROP 掉请求,但是允许返回报文通过。

丢弃状态为 INVALID 的 HTTP 数据包:状态为 INVALID 的都是无效的包,直接 DROP。

iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP 

-m state --state 是用来识别连接状态的,常见的有 4 种状态,NEW,INVALID,ESTABLISHED,RELATED

丢弃外网的私网源地址请求:服务器是公网的,没有内网互联机器,源地址是私网地址的基本都是 IP 欺骗,直接 DROP。

iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP 

0x02 高级应用

防止 DDOS 和 CC 攻击:可以通过 iptables 记录访问过频,然后禁止掉过频密的请求。

iptables -A INPUT -p tcp --dport 80 --syn -m recent --name web_viewer --rcheck --seconds 60 --hitcount 10 -j LOG --log-prefix 'CC_ATTACK:' --log-ip-options iptables -A INPUT -p tcp --dport 80 --syn -m recent --name web_viewer --rcheck --seconds 60 --hitcount 10 -j DROP iptables -A INPUT -p tcp --dport 80 --syn -m recent --name web_viewer --set -j ACCEPT 

每 60 秒只允许建立 10 个新连接,超出则丢弃。

防止 SSH 爆破:公网服务器总会被人爬到然后爆破 SSH 密码,直接用 iptables 中的 recent 模块将爆破的禁掉。

iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --rcheck --seconds 300 --hitcount 3 -j DROP iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --set -j ACCEPT 

这里的流程就是,第一次发出 SSH 连接的时候,会先检查 SSH_Brute 列表中有无记录,并且是否满足 3 次,如果满足则丢弃,生存期是 5 分钟(300 秒),如果是第一次连接,自然不会符合第一条规则,所以就跳到第二条,将当前用户的 IP 添加到 SSH_Brute 表中,并允许此次通过。这样就可以限制了,5 分钟内,只能尝试 3 次,超出这个次数就会被 DROP。

但这样还是存在一个问题,就是每隔5分钟之后还是可以爆破,但我们又不能将时间设置得太长,不然我们自己管理都被 DROP 了请求,所以这里可以用 update 标签来代替 rcheck 标签。两者作用其实大致相同,只是处理流程不一样, rcheck 是从接受到数据包就开始计算时间,但是 update是从最近的 DROP 数据包开始计算时间的,等于在一定时间内允许你发起 X 次连接,但一旦超出了,就开始 DROP 你的请求一定的时间。这样的过滤更加严格。

iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --update --seconds 3600 --hitcount 3 -j DROP iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --set -j ACCPET 

与上面其实就是换成了 update ,作用是一旦发起了超过 3 次连接就禁止一个小时。

未完待续

原文地址:https://bobylive.com/static/1937069


admin 发布于  2016-4-2 10:04 

Badusb初玩步骤记录&疑问探讨 技术文章

一直在各大常逛的网站看到关于Badusb的文章,顿时觉得很神奇,很高端,于是一直想拥有这么一个邪恶的东西,可是因为2303不是很好找,并且git上的编译写入过程一看就头大,所以一直搁浅了,可是并没放弃,扯远了,扯回来。 

PS:英文好的同学可以直接去Git看官方教程 
PS:发现关于Badusb的详细教程文章国内寥寥无几,大牛们肯定都是在躲着玩..让后来想学的小白怎么办

俄罗斯大神发的帖子,有制作视频,查资料去看吧:https://dmyt.ru/forum/viewtopic.php?f=7&t=383

需要的环境&工具

0.2303芯片的U盘  (废话...)
1.Visual Studio 2012(编译所需工具用,可选安装,我会编译打包好) 
2.Java环境  (执行encoder所需) 
3..NET framework 4.5(系统自带,没有请到微软官网下载) 
4.SDCC  http://sdcc.sourceforge.net   //安装至C:\Program Files\SDCC目录下 
5.Duckencoder(编译攻击代码) 
6.Burner File BN03V104M.BIN  (2303固件)         
7.Psychson  (Badusb写入工具 https://github.com/adamcaudill/Psychson/) 
8.攻击payload  (想要执行的攻击代码) 
9.主控芯片查看工具  (可选,查看U盘主控芯片信息)

1.下载&编译攻击代码 
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads 
你可以使用HelloWorld测试,也可以用Downer下载exe并运行(第二次刷入比较麻烦,建议第一次就选好想要的payload

java -jar encoder.jar -i payload.txt -o inject.bin //使用Duckencoder目录下的encoder生成payload为bin

2.生成固件&将攻击代码写入固件

Psychson-master\firmware\build.bat //生成固件

EmbedPayload.exe C:\Psychson-master\inject.bin C:\Psychson-master\firmware\bin\fw.bin //将攻击代码写入生成的固件


3.将生成的固件写入U盘

DriveCom.exe /drive=G /action=SetBootMode //设置U盘模式

DriveCom.exe /drive=G /action=SendExecutable /burner=BN03V104M.BIN //2302固件

DriveCom.exe /drive=G /action=SendFirmware /burner=C:\Psychson-master\BN03V104M.BIN /firmware=C:\Psychson-master\firmware\bi\fw.bin //写入带有攻击代码的固件到芯片中


就不每个都传图了,直接上写入成功的图:点击查看原图

文件打包下载链接:链接:http://pan.baidu.com/s/1jIm22bk 密码:mrxn

疑问讨论:(玩过的大牛,都别躲着玩了,快出来科普问题,或说说猥琐的新姿势..) 

1.看漏洞原理,貌似是因为此芯片可编程为其他设备,如Usb键盘,打印机什么的,然后执行代码,那么U盘被编程为了其他设备,是否可以将恶意 exe写入进去,并在插入的时候执行自己存储的exe,而不是执行vbs下载(因为要考虑到内网或没网,执行一个内置并潜伏的程序应该能pass此场景) 

2.貌似它只是模拟了键盘去执行命令,那么在没有powershell的环境里如何做到隐藏执行?cmd有点显眼,虽然一闪而过 

3.如何即让它可以模拟执行命令又能像正常U盘一样存储东西(比较插上U盘结果没出现盘让人感觉有点不对)听说量产工具可以把U盘量产为不同的用途,不知道是否可以用在此处 

end:不想再折腾了。。第一次刷入helloworld成功后还小激动了会,然后发现第二次刷入新的payload出现了错误,在大牛的帮助下才成功使用短接方法重新刷入payload(在没有工具的情况下,拆开U盘橡胶外壳,不要问我是不是咬开的,我徒手撕的..) 

感谢90某大神的耐心回答,几个小时之前都没听说过U盘还有短接这东西。。(此文也是参考自他) 

下一个可能要感谢“一只猿”了,你们猜为什么 

enjoying..(ps:去目(nv)标(shen)那丢U盘吧)

原文:http://www.jeary.org/?post=51


admin 发布于  2016-4-1 14:09 

利用U盘制作简单BadUSB,插谁谁怀孕,价格便宜,人人都可以拥有 技术文章

首先 来看一下 图(如果刷坏或者想更改Payload,需要短接39和40针,再用官方刷写工具刷新),注意红色箭头标志:

点击查看原图


0x00 前言 

关于Badusb可以参看这个视屏:http://v.qq.com/boke/page/l/g/w/l01425u2igw.html

不是很新的东西,其他作者已对此做过研究测试,本文仅用来记录操作过程,保存日志,说明细节。

0x01参考资料 

https://github.com/adamcaudill/Psychson 
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads 
http://zone.wooyun.org/content/20001 

0x02环境搭建 

1、硬件 

U盘 :东芝(TOSHIBA) 速闪系列 U盘 16GB (黑色) USB3.0 主控版本:Phison 2251-03 购买地址: http://item.jd.com/929732.html

2、软件 

Windows x64主机 

(1)Java Runtime Environment :Java环境,用于支持Duckencoder 

(2)SDCC :刷写U盘的环境,用于支持Psychson 

(3)Visual Studio 2012 :编译Psychson的开发环境 

(4)Psychson :BasUSB写入工具 (https://github.com/adamcaudill/Psychson)

(5)Burner File :BN03V104M.BIN,必要的burner 

(6)USB-Rubber-Ducky Payload :编写Payload的参考代码 (https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads)

(7)Duckencoder :用于编译Payload 

(8)chipgenius 芯片检测工具 :用于确定U盘型号 

0x03操作流程 

1、配置Payload 

进入DuckEncoder文件夹 

执行:

java -jar encoder.jar -i payload.txt -o inject.bin

说明: 

encoder.jar:文件夹自带 
payload.txt:可参考USB-Rubber-Ducky Payload 
inject.bin:执行代码后生成的文件 

2、生成固件 

执行:

Psychson-master\firmware\build.bat

生成fw.bin文件 

3、将Payload写入fw.bin文件 

执行:

EmbedPayload.exe inject.bin fw.bin

说明: 

EmbedPayload.exe:编译EmbedPayload工程得来 
inject.bin:操作1生成 
fw.bin:操作2生成 

4、将生成的固件写入U盘 

(1)执行

DriveCom.exe /drive=E /action=SetBootMode

设置U盘模式 

(2)执行

DriveCom.exe /drive=E /action=SendExecutable /burner=BN03V104M.BIN

操作burner 

(3)执行

DriveCom.exe /drive=E /action=SendFirmware /burner=BN03V104M.BIN /firmware=fw.bin

将fw.bin刷入U盘 

0x04 小结 

刷入成功后,下次插入U盘会模拟键盘操作,自动执行Payload 

0x05 补充 

如果刷坏或者想更改Payload,需要短接39和40针,再用官方刷写工具刷新 

相关工具以及国外的工具资料包请在这里下载:00.png

链接: http://pan.baidu.com/s/1jIm22bk 密码: mrxn

欢迎私聊博主个人定制哦!价格实惠,保你满意,远控女神?试卷?老师的秘密?报复?格盘?改后缀?木马?都可以!哈哈

我只负责制作,怎么用那是你的事儿!你也可以自己按照教程制作,喜欢折腾的慢慢折腾去吧!



admin 发布于  2016-4-1 13:34 

百度云这是变相的泄漏了用户隐私么? 业界新闻

手机安装过百度云的应该知道,安装完百度云后,首次打开百度云会自动把照片备份选择上,如果你没注意,直接就下一步了的话,就有点泄漏你的照片的危险,通过Google搜索,"site:yun.baidu.com 来自:iPhone" 会搜索出很多的手机照片:QQ截图20160331163006.png

博主初略的搜索了一下,来自iPhone 的结果有两千多。。。而且随便从这些照片中就找到了很多私人信息啊,比如:

寝室帅哥的销魂照:

QQ截图20160331162917.png

你的火车票,姓名,身份证号码,身份证自拍照,银行卡,家人照片,手机录制的视屏 等等(当然 全部打码 -_- ||我是好孩子):

QQ截图20160331162847.pngQQ截图20160331163057.pngQQ截图20160331163151.png

很容易的有意识的社工你,你的什么账号密码,或者是被冒用,被拿去实名注册等等,数不胜数啊,当然损失的就是这些百度云用户了,

博主提醒各位啊,在这个大数据时代,能不留网上的信息最好别留网上,因为谁也不知道那一天你用的服商会不会被黑,数据泄漏,谁也不敢打包票说不泄漏啊。。。最好的就是特别重要的还是自己放在本地,如果实在需要放在网盘等等,请加密压缩后在放上去,这样相对来说安全些,即使别人拿到了,也需要解密,对一般人来说就拜拜了,但是对于一些专业人士/团伙来说,密码太简单和没有没啥区别,挂上几百G的彩虹表,挖不了几天就出来了。。。要设置密码就把密码强度设置大点,包括大小写,数字特殊符号等都包括,而且长度最好是达到软件所能达到的最大长度,密码强度足够强大的情况下,理论上是可以被破解的,但是时间会长很多,几乎等于零(至少目前是,不知道以后会不会有什么新技术,可以破)。哎呀,不知不觉就说了这么多,只是希望在这个互联网大染缸里活动,时刻都要小心啊。人心太复杂,社会其实很简单。

大家也可以看看这几篇文章,或许会对你有帮助:

google黑客使用方法,让你见识不一样的世界

从12306信息泄露了解何为黑客撞库拖库洗库

江湖险恶 如何设置安全又方便的个人密码



admin 发布于  2016-3-31 16:27 

工信部公开征求《互联网域名管理办法》意见+热评 业界新闻

2016年3月25日,酝酿多年的《中国互联网域名管理办法》修订浮出水面,工信部正式向社会公开征求意见。该意见稿首次要求不得为境外域名注册服务机构管理的域名提供境内网络接入服务,强制要求境内网站须境内管理域名。


意见稿第三十七条首次要求,在境内进行网络接入的域名应当由境内域名注册服务机构提供服务,并由境内域名注册管理机构运行管理。在境内进行网络接入、但不属于境内域名注册服务机构管理的域名,互联网接入服务提供者不得为其提供网络接入服务。


值得注意的是,根据意见稿第二条之规定,“在中华人民共和国境内从事互联网域名服务及相关活动,应当遵守本办法。”从文意理解,这里的“域名”不仅包括CN/中国等国别顶级域名,还应当包括COM/NET等类别顶级域名。


个人认为,强制要求境内企业网站须境内管理域名的可操作性不强,境内的众多门户网站和互联网企业均使用国外的域名注册商,切换回国内有较大风险,因为国内域名注册商主要是万网提供,而万网已经被阿里巴巴全资收购,因此迁移域名到国内,将会导致国内互联网企业的网站均被阿里巴巴所控制,包括阿里巴巴的竞争对手,2011年有一个案例,阿里巴巴竞争对手慧聪网的域名遭到投诉后,被阿里直接将慧聪网域名暂停解析长达数小时,之后愤怒的慧聪网对外推出“反万网霸权”网站,对万网进行指控。


目前,淘宝、百度、网易、搜狐、微软、苹果、腾讯财付通、CCTV等诸多知名公司的网站域名都使用了国外的域名服务例如MarkMonitor等,如果新的《互联网域名管理办法》实施下来要求这些企业把域名转到阿里巴巴的万网,这画面太美我不敢看。


对于外资企业或跨国公司来说,根据工信部早先的规定,外资企业在华开展网络业务,相关服务器和存储设备必须存放在中国境内,但如果按照域名管理办法的第三十七条,则外资企业必须将域名转入中国才能提供解析,这对于绝大多数外资企业来说都是难以接受的,没有哪家跨国企业能接受自己的主域名被中国企业控制。


我觉得,工信部强制要求境内网站须境内管理域名的主要原因是,以后看到你网站上有啥“有害信息”,可以直接ClientHold,连拔网线的事情都省了,管理起来真太方便了。


之所以知名的企业都喜欢用例如MarkMonitor这样的专业域名注册服务,主要还是因为安全性的考虑,使用不安全的域名注册服务会对网站造成非常致命的影响,例如2010年的时候,百度曾经遭到建立以来持续时间最长、影响最严重的黑客攻击,黑客通过劫持百度域名,导致百度停止服务长达数小时之久,之后,百度更换域名注册商到了MarkMonitor,以防止类似事件发生。因此,工信部应该尊重各个互联网企业的选择,不应该强制企业采用指定的服务,导致企业面临遭受重大损失的风险。


目前工信部起草了《互联网域名管理办法(修订征求意见稿)》处于向社会公开征求意见的阶段,社会人士可以于2016年4月25日前反馈意见,反馈的联系方式如下:


联系人:工业和信息化部政策法规司


电  话:010-68205072(传真)


电子邮箱:law#miit.gov.cn


地  址:北京市西城区西长安街13号工业和信息化部政策法规司(邮编:100804),请在信封上注明“规章征求意见”。


在线反馈意见的地址:http://zqyj.chinalaw.gov.cn/index


以下是《互联网域名管理办法》(修订征求意见稿)全文:

4557_1.jpg

互联网域名管理办法


(修订征求意见稿)


第一章 总则


第一条 为了规范互联网域名服务活动,保护用户合法权益,保障互联网域名系统安全、可靠运行,推动中文域名和国家顶级域名发展和应用,促进中国互联网健康发展,根据《中华人民共和国行政许可法》、《国务院对确需保留的行政审批项目设定行政许可的决定》等规定,参照国际上互联网域名管理准则,制定本办法。


第二条 在中华人民共和国境内从事互联网域名服务及相关活动,应当遵守本办法。


本办法所称互联网域名服务(以下简称域名服务),是指从事域名根服务器运行和管理、顶级域名运行和管理、域名注册、域名解析等活动。


第三条 工业和信息化部对全国的域名服务实施监督管理,主要职责是:


(一)制定互联网域名管理规章及政策;


(二)制定互联网域名体系、域名资源发展规划;


(三)管理境内的域名根服务器运行机构和域名注册管理机构;


(四)负责域名体系的网络与信息安全管理;


(五)依法保护用户个人信息和合法权益;


(六)负责与域名有关的国际协调;


(七)管理境内的域名解析服务;


(八)管理其他与域名服务相关的活动。


第四条 各省、自治区、直辖市通信管理局负责对本行政区域内的域名服务实施监督管理,主要职责是:


(一)贯彻执行域名管理法律、行政法规、规章和政策;


(二)管理本行政区域内的域名注册服务机构;


(三)协助工业和信息化部对本行政区域内的域名根服务器运行机构和域名注册管理机构进行管理;


(四)负责本行政区域内域名系统的网络与信息安全管理;


(五)依法保护用户个人信息和合法权益;


(六)管理本行政区域内的域名解析服务;


(七)管理本行政区域内其他与域名服务相关的活动。


第五条 互联网域名体系由工业和信息化部予以公告。根据域名发展的实际情况,工业和信息化部可以对互联网域名体系进行调整。


第六条 “.CN”和“.中国”是中国的国家顶级域名。


中文域名是互联网域名体系的重要组成部分。国家鼓励和支持中文域名系统的技术研究和推广应用。


第七条 提供域名服务,应当遵守国家相关法律法规,符合相关技术规范和标准。


第八条 任何组织和个人不得妨碍互联网域名系统的安全和稳定运行。


第二章 域名管理


第九条 在境内设立域名根服务器及域名根服务器运行机构、域名注册管理机构和域名注册服务机构的,应当取得工业和信息化部或者省、自治区、直辖市通信管理局(以下统称电信管理机构)的相应许可。


第十条 申请设立域名根服务器及域名根服务器运行机构的,应当具备以下条件:


(一)域名根服务器设置在境内,并且符合互联网发展相关规划及域名系统安全稳定运行要求;


(二)是在境内依法设立的法人,该法人及其主要出资者、主要经营管理人员具有良好的信用记录;


(三)具有保障域名根服务器安全可靠运行的场地、资金、环境、专业人员和技术能力以及符合电信管理机构要求的信息管理系统;


(四)具有健全的网络与信息安全保障措施,包括管理人员、网络与信息安全管理制度、应急处置预案和相关技术、管理措施等;


(五)具有用户个人信息保护能力、提供长期服务的能力及健全的服务退出机制;


(六)法律、行政法规规定的其他条件。


第十一条 申请设立域名注册管理机构的,应当具备以下条件:


(一)顶级域名管理系统设置在境内,并且持有的顶级域名符合相关法律法规及域名系统安全稳定运行要求;


(二)是在境内依法设立的法人,该法人及其主要出资者、主要经营管理人员具有良好的信用记录;


(三)具有完善的业务发展计划和技术方案以及与从事顶级域名运行管理相适应的场地、资金、专业人员以及符合电信管理机构要求的信息管理系统;


(四)具有健全的网络与信息安全保障措施,包括管理人员、网络与信息安全管理制度、应急处置预案和相关技术、管理措施等;


(五)具有进行真实身份信息核验和用户个人信息保护的能力、提供长期服务的能力及健全的服务退出处理机制;


(六)具有健全的域名注册服务管理制度和对域名注册服务机构的监督机制;


(七)法律、行政法规规定的其他条件。


第十二条 申请设立域名注册服务机构的,应当具备下列条件:


(一)域名注册服务系统、注册数据库和解析系统设置在境内;


(二)是在境内依法设立的法人,该法人及其主要出资者、主要经营管理人员具有良好的信用记录;


(三)具有与从事域名注册服务相适应的场地、资金和专业人员以及符合电信管理机构要求的信息管理系统;


(四)具有进行真实身份信息核验和用户个人信息保护的能力、提供长期服务的能力及健全的服务退出机制;


(五)具有健全的域名注册服务管理制度和对域名注册代理机构的监督机制;


(六)具有健全的网络与信息安全保障措施,包括管理人员、网络与信息安全管理制度、应急处置预案和相关技术、管理措施等;


(七)法律、行政法规规定的其他条件。


第十三条 申请设立域名根服务器及域名根服务器运行机构、域名注册管理机构的,应当向工业和信息化部提交申请材料。申请设立域名注册服务机构的,应当向住所地省、自治区、直辖市通信管理局提交申请材料。


申请材料应当包括:


(一)申请单位的基本情况;


(二)对域名服务实施有效管理的证明材料,包括相关系统及场所、服务能力的证明材料、管理制度、与其他机构签订的协议等;


(三)网络与信息安全保障制度及措施;


(四)证明申请单位信誉的材料;


(五)法定代表人签署的依法诚信经营承诺书。


第十四条 申请材料齐全、符合法定形式的,电信管理机构应当向申请单位出具受理申请通知书;申请材料不齐全或者不符合法定形式的,电信管理机构应当场或在5个工作日内一次性书面告知申请单位需要补正的全部内容;不予受理的,应当出具不予受理通知书并说明理由。


第十五条 电信管理机构应当自受理之日起20个工作日内完成审查,作出予以许可或者不予许可的决定。20个工作日内不能作出决定的,经电信管理机构负责人批准,可以延长10个工作日,并将延长期限的理由告知申请单位。需要组织专家论证的,论证时间不计入审查期限。


予以许可的,应当颁发相应的许可文件;不予许可的,应当书面通知申请单位并说明理由。


第十六条 域名根服务器运行机构、域名注册管理机构和域名注册服务机构的许可有效期为5年。


第十七条 域名根服务器运行机构、域名注册管理机构和域名注册服务机构的名称、住所、法定代表人等信息发生变更的,应当自变更之日起20日内向原发证机关办理变更手续。


第十八条 在许可有效期内,域名根服务器运行机构、域名注册管理机构、域名注册服务机构拟终止相关服务的,应当通知用户,提出可行的善后处理方案,并向原发证机关提交书面申请。


原发证机关收到申请后,应当向社会公示30日。公示期结束60日内,原发证机关应当完成审查工作,做出予以批准或者不予批准的决定。


第十九条 许可有效期届满需要继续从事域名服务的,应当提前90日向原发证机关申请延续;不再继续从事域名服务的,应当提前90日向原发证机关报告并做好善后工作。


第二十条 域名注册服务机构委托域名注册代理机构开展市场销售等工作的,应当对域名注册代理机构的工作进行监督和管理。


域名注册代理机构在开展委托的市场销售等工作过程中,应当主动表明代理关系,并在域名注册服务合同中明示相关域名注册服务机构名称及代理关系。


第二十一条 域名注册管理机构、域名注册服务机构应当在境内设立相应的应急备份系统和应急机制,定期将域名注册数据在境内进行备份。


第二十二条 域名根服务器运行机构、域名注册管理机构、域名注册服务机构应当在其网站首页和经营场所显著位置标明其许可相关信息。域名注册管理机构还应当标明与其合作的域名注册服务机构名单。


域名注册服务机构应当要求域名注册代理机构在其网站首页和经营场所显著位置标明域名注册服务机构名称。


第三章 域名服务


第二十三条 域名根服务器运行机构、域名注册管理机构和域名注册服务机构应当向用户提供安全、方便、稳定的服务。


第二十四条 域名注册管理机构应当根据本办法制定域名注册实施细则并向社会公开。


第二十五条 域名注册管理机构应当通过电信管理机构许可的域名注册服务机构开展域名注册服务。


域名注册服务机构应当按照许可的域名注册服务项目提供服务,不得为未经许可的域名注册管理机构提供域名注册服务。


第二十六条 域名注册服务原则上实行“先申请先注册”,相应顶级域域名注册实施细则另有规定的,从其规定。


第二十七条 为维护国家利益和社会公众利益,域名注册管理机构应当建立域名注册保留字制度。


第二十八条 域名注册服务机构不得为任何组织或者个人注册、使用含有下列内容的域名提供服务:


(一)反对宪法所确定的基本原则的;


(二)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;


(三)损害国家荣誉和利益的;


(四)煽动民族仇恨、民族歧视,破坏民族团结的;


(五)破坏国家宗教政策,宣扬邪教和封建迷信的;


(六)散布谣言,扰乱社会秩序,破坏社会稳定的;


(七)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;


(八)侮辱或者诽谤他人,侵害他人合法权益的;


(九)含有法律、行政法规禁止的其他内容的。


第二十九条 域名注册服务机构不得采用欺诈、胁迫等不正当手段要求他人注册域名。


第三十条 域名注册服务机构应当要求域名注册申请者提交域名持有者的真实、准确、完整的身份信息等域名注册信息。


域名注册管理机构和域名注册服务机构应当对域名注册信息的真实性、完整性进行核验。


域名注册申请者提交的域名注册信息不准确、不完整的,域名注册服务机构应当要求其予以补正。申请者不补正或者提交不真实的域名注册信息的,域名注册服务机构不得为其提供域名注册服务。


第三十一条 域名注册服务机构应当公布域名注册服务的内容、时限、费用,保证服务质量,提供域名注册信息的公共查询服务。


第三十二条 域名注册管理机构、域名注册服务机构应当依法保护用户个人信息。除用于提供域名注册信息的公共查询服务或法律、法规另有规定外,未经用户同意,不得将用户个人信息提供给他人。


第三十三条 域名持有者的联系方式等信息发生变更的,应当在变更后30日内向域名注册服务机构办理域名注册信息变更手续。


域名持有者将域名转让给他人的,后者应当遵守域名注册的相关要求。


第三十四条 域名持有者可以选择、变更域名注册服务机构。变更域名注册服务机构的,原域名注册服务机构应当配合域名持有者转移域名注册相关信息。


无正当理由,域名注册服务机构不得阻止域名持有者变更域名注册服务机构。


电信管理机构要求停止解析的域名,不得变更域名注册服务机构或转让给他人,但法律、行政法规另有规定的除外。


第三十五条 域名注册管理机构和域名注册服务机构应当设立投诉受理机制,并在其网站首页和经营场所显著位置公布投诉受理方式。


域名注册管理机构和域名注册服务机构应当及时处理投诉;不能及时处理的,应当说明理由和处理时限。


第三十六条 提供域名解析服务,应当具备相应的技术、服务和网络与信息安全保障能力,符合有关法律、法规以及技术规范、标准,落实网络与信息安全保障措施,记录并留存域名解析维护日志和变更记录,保障解析服务质量和解析系统安全。涉及经营电信业务的,应当依法取得电信业务经营许可。


第三十七条 在境内进行网络接入的域名应当由境内域名注册服务机构提供服务,并由境内域名注册管理机构运行管理。


在境内进行网络接入、但不属于境内域名注册服务机构管理的域名,互联网接入服务提供者不得为其提供网络接入服务。


第三十八条 提供域名解析服务,不得擅自篡改解析信息。未经他人同意,不得将域名解析指向他人的IP地址。


第三十九条 提供域名解析服务,不得为违法网络信息服务提供域名跳转。


第四十条 域名注册管理机构、域名注册服务机构应当配合国家有关部门依法开展的相关检查工作,并按照电信管理机构的要求对存在违法行为的域名进行处置。


第四十一条 域名根服务器运行机构、域名注册管理机构和域名注册服务机构应当遵守国家相关法律、法规和技术规范、标准,落实网络与信息安全保障措施,配置必要的网络通信应急设备,制定网络通信保障应急预案,建立健全网络与信息安全监测技术手段和应急制度。域名系统出现网络与信息安全事故时,应当及时向电信管理机构报告。


因国家安全和处置紧急事件的需要,域名根服务器运行机构、域名注册管理机构和域名注册服务机构应当服从电信管理机构的统一指挥与协调,遵守电信管理机构的管理要求。


第四十二条 已注册的域名出现下列情形之一的,域名注册服务机构应当予以注销,并通知域名持有者:


(一)域名持有者申请注销域名的;


(二)域名持有者提交虚假域名注册信息的;


(三)依据人民法院、仲裁机构或域名争议解决机构作出的裁判,应当注销的;


(四)国家有关部门依法作出域名注销决定的;


(五)法律、行政法规规定予以注销的其他情形。


第四章 监督检查


第四十三条 电信管理机构应当加强对域名服务进行监督检查。域名根服务器运行机构、域名注册管理机构、域名注册服务机构应当接受、配合电信管理机构的监督检查。


工业和信息化部鼓励开展域名服务行业自律活动,鼓励公众监督域名服务。


第四十四条 域名根服务器运行机构、域名注册管理机构、域名注册服务机构应当按照电信管理机构的要求,定期报送业务开展情况、安全运行情况、投诉和争议处理情况等信息。


第四十五条 电信管理机构实施监督检查时,应当对域名根服务器运行机构、域名注册管理机构和域名注册服务机构报送的材料进行全面审核,并对其经营主体、经营行为和服务质量、网络与信息安全、执行国家和电信管理机构有关规定的情况等进行检查。


电信管理机构可以委托专业机构开展有关监督检查活动。


第四十六条 电信管理机构应当建立域名根服务器运行机构、域名注册管理机构和域名注册服务机构的信用记录制度,将其违反本办法并受到行政处罚的行为记入信用档案。


第四十七条 电信管理机构开展监督检查,不得妨碍域名根服务器运行机构、域名注册管理机构和域名注册服务机构正常的经营和服务活动,不得收取任何费用,不得泄露所知悉的域名注册信息。


第五章 罚则


第四十八条 违反本办法第九条规定,未经许可擅自设立域名根服务器及域名根服务器运行机构、域名注册管理机构、域名注册服务机构的,电信管理机构应当根据《中华人民共和国行政许可法》第八十一条的规定,采取措施予以制止,并视情节轻重,予以警告或者处一万元以上三万元以下罚款。


第四十九条 违反本办法规定,域名注册管理机构或者域名注册服务机构有下列行为之一的,由电信管理机构依据职权责令限期改正,并视情节轻重,处一万元以上三万元以下罚款,向社会公告:


(一)为未经许可的域名注册管理机构提供域名注册服务,或者通过未经许可的域名注册服务机构开展域名注册服务的;


(二)未按照许可的域名注册服务项目提供服务的;


(三)为他人注册、使用含有违法内容的域名提供服务的;


(四)未对域名注册信息的真实性、完整性进行核验的;


(五)无正当理由阻止域名持有者变更域名注册服务机构的;


第五十条 违反本办法规定,提供域名解析服务,有下列行为之一的,由电信管理机构责令限期改正,可以视情节轻重并处一万元以上三万元以下的罚款,向社会公告:


(一)擅自篡改域名解析信息或者将域名解析指向他人IP地址的;


(二)为违法网络信息服务提供域名跳转的;


(三)未落实网络与信息安全保障措施的;


(四)未记录并留存域名解析维护日志和变更记录的;


(五)未按要求对存在违法行为的域名进行处置的。


第五十一条 违反本办法第十七条、第十八条第一款、第二十一条、第二十二条、第二十九条、第三十一条、第三十二条、第三十五条第一款、第三十七条第二款、第四十一条规定的,由电信管理机构依据职权责令限期改正,可以并处一万元以上三万元以下罚款,向社会公告。


第五十二条 任何组织或个人违反本办法第二十八条规定注册、使用域名,构成犯罪的,依法追究刑事责任;尚不构成犯罪的,由国家有关机关依法予以处罚。


第六章 附则


第五十三条 本办法下列用语的含义是:


(一)域名:指互联网上识别和定位计算机的层次结构式的字符标识,与该计算机的互联网协议(IP)地址相对应。


(二)中文域名:指含有中文文字的域名。


(三)顶级域名:指域名体系中根节点下的第一级域的名称。


(四)域名根服务器:是指承担域名体系中根节点功能的服务器(含镜像服务器)。


(五)域名根服务器运行机构:指依法获得许可并承担域名根服务器运行、维护和管理工作的机构。


(六)域名注册管理机构:指依法获得许可并承担顶级域名运行和管理工作的机构。


(七)域名注册服务机构:指依法获得许可并受理域名注册申请并完成域名在顶级域名数据库中注册的机构。


(八)域名注册代理机构:指受域名注册服务机构的委托,受理域名注册申请,间接完成域名在顶级域名数据库中注册的机构。


(九)顶级域名管理系统:指域名注册管理机构在境内开展顶级域名运行和管理所需的主要信息系统,包括注册管理系统、注册数据库、域名解析系统、域名信息查询系统、身份信息核验系统等。


(十)域名跳转:指对某一域名的访问跳转至该域名绑定或指向的其他域名、IP地址或者网络信息服务等。


第五十四条 本办法中规定的日期,除明确为工作日的以外,均为自然日。


第五十五条 在本办法施行前未取得相应许可开展域名服务的,应当自本办法施行之日起六个月内,按照本办法规定办理许可手续。


在本办法施行前已取得许可的域名根服务器运行机构、域名注册管理机构和域名注册服务机构,其许可有效期适用本办法第十六条的规定,有效期自本办法施行之日起计算。


第五十六条 本办法自 年 月 日起施行。2004年11月5日公布的《中国互联网络域名管理办法》(原信息产业部令第30号)同时废止。

下面是一些热评,哈哈,局域网,自我保护?网络封锁?孰对孰错?未命名_meitu_0.jpg


admin 发布于  2016-3-31 11:56 

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 

简单修改emlog的checkcode.php给验证码增加干扰线和噪点 emlog

以下是在论坛看到ewceo的帖子里的,但是他并没有给出具体的代码,对于菜鸟们来说就不容易;

修改过程图览:00.png01.png023.png

鉴于 @奇遇 的反垃圾评论插件(哪怕是最新3.5版)经常被非法侵入式清空设置并报错,也不知是啥BUG,只好亲自动手来反击显示为国外IP的长篇英文评论了



首先分析状况:咱EMLOG的所有文章评论表单都是使用一个相同的提交地址,只是将文章ID赋在一个INPUT之中,这就给了机器人可趁之机:提交地址固定的、验证码地址固定的(还TM特好识别),文章ID是数字的随机生成就好,EMLOG的评论表单被模似简直是史上最轻松啊!所以JS之类的手段在机器人面前都是渣……



8错,在尚无给力插件问世的情况下,治标治本的办法只有改内核文件了:



第1步:英文垃圾评论一大特色就是长篇的并夹杂着火星文字,所以必含中文这样的反制也弱爆了,comment_controller.php文件定义评论最大字符数居然为8000,这是干神马的节奏,很多文章都够不到4000字好吧,发条微博和说说都不能超140字,所以偶赶紧给改为几百压压惊,上千字的精彩评论偶不需要啊



完成第一步还得紧接着做第2步:额,斗个胆,EMLOG默认的验证码偶能吐个槽么,生成的文字中规中矩且颜色清晰好辨,根本就是鸡肋嘛,除了给真心评论的人制造一道坎外,简直就是垃圾评论机器人的帮凶,还有比这更好自动识别的验证码么?checkcode.php唯一可赞之处似乎是不涉及字体文件,代码也比较精炼,这是偶所喜欢的风格,因此就没给彻底换掉,只是加了一点代码:增加几个随机线条,文字颜色范围也弄宽了点(为了防止人眼难识别,增加了点击刷新)……


如此2招之后偶就已经开始坐等机器人了,别的没啥,偶就是在线时间多,突然发现与垃圾评论玩玩策略对抗也有点意思,话说机器人若玩不过偶就暂不上后招咯



学过php的人应该很容易修改,我在这里把我修改过的粗略代码贴出来,便于不会的朋友借鉴,也便于会的朋友给我指点:

<?php
/**
 * Emlog图片验证码生成程序
 * @copyright (c) Emlog All Rights Reserved
 * Modify By Mrxn 
 * Emlog  Site: http://www.emlog.net/
 * Mrxn's Blog: https://mrxn.net/
 */

session_start();

$randCode = '';
$chars = 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPRSTUVWXYZ23456789';
for ( $i = 0; $i < 5; $i++ ){
    $randCode .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}

$_SESSION['code'] = strtoupper($randCode);

$img = imagecreate(75,25) or die("创建图像资源失败,请刷新页面");
$bgColor = isset($_GET['mode']) && $_GET['mode'] == 't' ? imagecolorallocate($img,245,245,245) : imagecolorallocate($img,255,255,255);
$pixColor = imagecolorallocate($img,mt_rand(88, 245), mt_rand(55, 240), mt_rand(99, 200));
//画字符、大小
for($i = 0; $i < 5; $i++){
    $x = $i * 13 + mt_rand(3, 7) - 2;
    $y = mt_rand(0, 3);
    $text_color = imagecolorallocate($img, mt_rand(100, 250), mt_rand(80, 180), mt_rand(90, 220));
    imagechar($img, 5, $x + 5, $y + 3, $randCode[$i], $text_color);
}
//画干扰点
for($j = 0; $j < 240; $j++){
    $x = mt_rand(0,100);
    $y = mt_rand(0,40);
    imagesetpixel($img,$x,$y,$pixColor);
}
//4条横斜线
for ($i=0; $i < 5; $i++) { 
    $lineColor = imagecolorallocate($img, rand(50, 150), rand(50, 150), rand(50, 150));
    $lineX1 = 0;
    $lineX2 = 80;
    $lineY1 = ($i + 1) * 8;
    $lineY2 = ($i + 1) * 15;
    imageline($img, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor);
}

//4条竖斜线
for ($i=0; $i < 5; $i++) { 
    $lineColor = imagecolorallocate($img, rand(50, 150), rand(50, 150), rand(50, 150));
    $lineY1 = 0;
    $lineY2 = 30;
    $lineX1 = ($i + 1) * 8;
    $lineX2 = ($i + 1) * 15;
    imageline($img, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor);
}

header('Content-Type: image/png');
imagepng($img);
imagedestroy($img);
将以上代码保存为[code]checkcode.php[/code]放在 你网站根目录/include/lib/下 覆盖,然后重启Apache或者是Nginx 即可看到效果(当然需要后台开启验证码)
为防止真正的读者不能识别验证码,请给验证码添加上 点击刷新 功能,
参考链接:给emlog5.3添加验证码刷新功能 https://mrxn.net/emlog-teach/242.html
[red]注:在进行DIY操作之前,请先备份相关文件,以防万一!本文基于emlog 5.31测试可行,理论上兼容所有版本,只要php版本不低于4[/red]
相关参考:
https://segmentfault.com/a/1190000002924386
http://bbs.emlog.net/thread-40567-1-1.html

对于反垃圾评论,也可以试试我这款插件:

https://mrxn.net/emlog-teach/emlog-math-comment-plugin.html

http://www.emlog.net/plugin/248



admin 发布于  2016-3-28 15:52