Classification:Network-else

Classification (Network-else)'s result:

了解cgi/fast-cgi/php-cgi/php-fpm

0x00 什么是cgi 即Common Gateway Interface 公共网关接口,是协议!!! 运行在服务器上的程序,fork-and-execute 模式,因为web服务器只能处理静态html/css,需要动态的就要交给cgi ,有标准输入,输出和环境变量的语言都可以编写,如C,PHP,python,shell,perl等。 //网上找的两张图,比较直观描述了cgi. cgi通过环境变量获得传递的参数,相关环境变量如下: 环境变量          意义 SERVER_NAME CGI脚本运行时的主机名和IP地址. SERVER_SOFTWARE 你的服务器的类型如: CERN/3.0 或 NCSA/1.3. GATEWAY_INTERFACE 运行的CGI版本. 对于UNIX服务器, 这是CGI/1.1. SERVER_PROTOCOL 服务器运行的HTTP协议. 这里当是HTTP/1.0. SERVER_PORT 服务器运行的TCP口,通常Web服务器是80. REQUEST_METHOD POST 或 GET, 取决于你的表单是怎样递交的. HTTP_ACCEPT 浏览器能直接接收的Content-types, 可以有HTTP Accept header定义. HTTP_USER_AGENT 递交表单的浏览器的名称、版本 和其他平台性的附加信息。 HTTP_REFERER 递交表单的文本的 URL,不是所有的浏览器都发出这个信息,不要依赖它 PATH_INFO 附加的路径信息, 由浏览器通过GET方法发出. PATH_TRANSLATED 在PATH_INFO中系统规定的路径信息. SCRIPT_NAME 指向这个CGI脚本的路径, 是在URL中显示的(如, /cgi-bin/thescript). QUERY_STRING 脚本参数或者表单输入项(如果是用GET递交). QUERY_STRING 包含URL中问号后面的参数. REMOTE_HOST 递交脚本的主机名,这个值不能被设置. REMOTE_ADDR 递交脚本的主机IP地址. REMOTE_USER 递交脚本的用户名. 如果服务器的authentication被激活,这个值可以设置。 REMOTE_IDENT 如果Web服务器是在ident (一种确认用户连接你的协议)运行, 递交表单的系统也在运行ident, 这个变量就含有ident返回值. CONTENT_TYPE 如果表单是用POST递交, 这个值将是 application/x-www-form-urlencoded. 在上载文件的表单中, content-type 是个 multipart/form-data. CONTENT_LENGTH 对于用POST递交的表单, 标准输入口的字节数.   0x01 什么是fast-cgi cgi进程管理器,cgi升级版,也是一个协议。将cgi保存在内存中以提高性能(不用像cgi一样每次请求都解析php.ini)。可独立于服务器。 工作原理: 1. Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module) 2. FastCGI进程管理器自身(master)初始化,解析配置文件,初始化执行环境,启动多个CGI解释器进程(可见多个php-cgi/worker)并等待来自Web Server的连接。 3. 当客户端请求到达Web Server时,FastCGI进程管理器(master)选择并连接到一个CGI解释器(worker)。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。 4. FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了) 当worker不够用时,master可以根据配置预先启动几个worker等着,同时如果发现空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源 而对应的是,只要是遵循了这个协议标准实现的程序,就可以称之为FastCGI程序 这就是fastcgi的对进程的管理。   0x02 什么是php-cgi cgi解释器进程,解释PHP脚本。   0x03 什么是php-fpm PHP fast-cgi,对fast-cgi的PHP实现,可调度php-cgi进程。可以平滑重载配置。   0x04 cgi安全问题 1. shellsock 参考 重温经典:shellshock漏洞重现及分析   2. 解析漏洞 环境:vulhub 以nginx为例进行重现: 判断漏洞,在任意图片后加/xxx.php 图片被解析 在上传图片马即可(尝试phpinfo): 更多解析漏洞参考: 解析漏洞总结   0x05 结语 时不时还能看到cgi-bin,整理下相关概念,不至于太混乱。   0x06 参考资料 https://www.jdon.com/idea/cgi.htm https://www.zhihu.com/question/19998865 www.nowamagic.net/librarys/veda/detail/1319 www.cnblogs.com/wanghetao/p/3934350.html https://segmentfault.com/q/1010000000256516 www.cnblogs.com/LittleHann/p/4561462.html https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html#    

web服务器、中间件、web容器的区别

有时会弄混这三者的区别,现总结区分。 Web服务器:提供www服务,处理http协议,响应静态页面的请求,页面跳转,也可以把动态请求委托其他程序(中间件/容器),返回信息给客户端。 中间件:提供系统软件和应用软件之间的连接,为应用程序提供容器。 Web容器:给其中的应用程序组件提供环境,中间件的组成部分,实现了对动态语言的解析,如tomcat有jsp容器去解析jsp。 ################## 常见web服务器:IIS(微软)、Apache、nginx、tomcat、weblogic(oracle)、websphere(IBM) 常见中间件:tomcat、weblogic、websphere 常见web容器:jsp容器、servlet容器、asp容器 有重复是因为中间件也可以提供web服务,充当web服务器的功能。 ##################

HTTP 状态码大全

0x00 概述 1xx:收到请求 2xx:请求成功 3xx:重定向 4xx:客户端错误 5xx:服务端错误   0x01 状态码解释 100:继续 101:切换协议 ############################## 200:请求成功 201:已创建 202:已接受 203:非授权信息 204:无内容 205:重置内容 206:部分内容 ############################### 300:多种选择 301:永久移动 302:临时移动 304:未修改 305:用代理 307:临时移动 ################################### 400:语法错误 401:身份认证 403:拒绝 404:Not Found 405:方法禁止 406:无法完成 407:代理认证 408:超时 409:put请求冲突 410:已不存在 411:要content-length 412:先决错误 413:实体过大 414:url过长 415:无法处理的媒体格式 416:范围无效 417:无法满足expect ################################ 500:内部错误 501:无法完成 502:bad gateway 503:服务不可用 504:gateway time-out 505:不支持的http版本 更详细的解释可看参考资料。   0x02 参考资料 www.runoob.com/http/http-status-codes.html tool.oschina.net/commons?type=5 tools.jb51.net/table/http_status_code blog.csdn.net/woshihaiyong168/article/details/52438839                

概览开源协议

0x00 什么是开源协议 简单的说,就是规定别人用你的开源代码可以做什么,可以修改什么,可以怎么用,用的时候要达到啥要求的一个条约。协议可以维护代码原作者的权利,尊重原作者劳动成果。开源协议有很多种,自己也可以写一份,但是如果没有特别需求,还是选一个已经写好的协议较为方便。   0x01 主要的开源协议 1. MIT:此协议允许别人以任何方式使用你的代码同时署名原作者,但原作者不承担代码使用后的风险。保留版权,而无任何其他限制。 关键词:保留版权,其他随意 代表:jQuery,.NET core,Rails   2. Apache:与MIT类似的协议,但它简单指明了作品归属者对用户专利上的一些授权。 (1)需要给代码的用户一份Apache Licence (2)如果你修改了代码,需要再被修改的文件中说明。 (3)在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。 (4)如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。 关键词:专利授权,商业友好 代表:Android,apache,swift   3. BSD: (1)如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。 (2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。 (3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 关键词:商业友好。   4. GPL:此协议要求代码分发者或者以此代码为基础开发出来的衍生作品需要以同样的协议来发布。不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。 关键词:开源,免费,传染 代表:linux,bash,GIMP   5. LGPL:允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。LGPL开源代码很适合作为第三方类库被商业软件引用。 关键词:库引用,可商业   0x02 主要协议图表说明 图片来源:www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html 图片来源:www.gcssloop.com/tips/choose-license 更详细的协议内容可以参考: 英文版:https://choosealicense.com 中文版:choosealicense.online   0x03 结语 尊重作品作者的劳动是基本道德素养,才能营造出良好的开源环境。每个人都应该尊重版权,尊重他人劳动,不仅是开源代码作品,其他作品也一样。本博客也积极做到不能转载的不转,可以转的按要求转(一些文章没写能否转载的本人默认可以转载),引用的地方注明引用源,参考到的文章都在参考资料里写出,欢迎大家监督,如果有无意侵权的地方,请联系本人LSA,大家共同维护互联网纯净和谐的环境。   0x04 参考资料 www.cnblogs.com/Wayou/p/how_to_choose_a_license.html www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html blog.csdn.net/u012150179/article/details/25490535 univasity.iteye.com/blog/1292658 https://baike.baidu.com/item/开源协议/10642383?fr=aladdin https://www.zhihu.com/question/19568896 www.gcssloop.com/tips/choose-license https://creativecommons.org/choose/ choosealicense.online/licenses/ https://choosealicense.com  

简谈X-Forwarded-For的一些事

X-Forwarded-For(XFF)是HTTP请求头字段之一。 格式:X-Forwarded-For: client1, proxy1, proxy2, proxy3 只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 请求从client1发出,XFF为空,再到从proxy1发出,请求里XFF就添加了client1,再从proxy2发出,请求里XFF就添加了proxy1,再到proxy3,再从proxy3发出,请求里XFF就添加了proxy2,注意这里porxy3不会添加到XFF,因为proxy3就是在tcp包的源IP。 一些程序如C#和php获取客户端IP会这样写: C#:string client1 = Request.ServerVariables[“HTTP_X_FORWARDED_FOR”]; PHP: getenv(‘HTTP_X_FORWARDED_FOR’) 看起来好像很正常,但是X-Forwarded-For是可以被伪造的(如刷票之类),只需在请求头中添加即可,如 C#: request.Headers.Add(“X_FORWARDED_FOR”, “6.6.6.6”); PHP: $headers = array( ‘X-Forwarded-For:’.6.6.6.6, ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);   Python: Header = { ‘X-Forwarded-For’: ‘6.6.6.6’, }

浅析比特币运行原理

0x01 前言 前段时间wannacry把比特币推向了一个高潮,本人决定稍微深入了解一下比特币,得出此文,适合于比特币零基础或不甚了解的读者。 //本文图片皆来源于网络 0x02 什么是比特币(bitcoin) 虚拟电子加密货币的一种,使用P2P技术,去中心化,高度匿名,无需信任,分布式账本,实体相当于账本,交易记录相当于货币。 0x03 相关术语解释 1.比特币地址:这是别人付给你比特币时你唯一需要提供的信息,形如1EXspSdXa9BQ6znxrU23eUBHjfuHiNJWso(开头是1),和公钥要极强的相关性,可认为地址就是公钥,建议比特币持有者为每项交易设立一个独立的地址,以保护账户的隐私和安全性。 2.区块:一个区块就是若干交易数据的集合,它会被标记上时间戳和之前一个区块的独特标记(hash值)。区块经过哈希运算后会生成一份工作量证明,从而验证区块中的交易。有效的区块经过全网络的共识后会被追加到区块链中。平均约每10分钟就有一个包含交易的新区块通过挖矿的方式添加到区块链中。 3.区块链:是一串通过验证的区块,当中的每一个区块都与上一个相连,一直连到第一个区块,由所有比特币用户共享。它被用来验证比特币交易的永久性并防止双重消费。 4.工作量证明:指通过有效计算得到的一小块数据。具体到比特币,矿工必须要在满足全网目标难度的情况下求解SHA-256算法,算出下文提到的幸运数字,使得区块SHA-256后的值开头有规定的N个零,这个N有变化机制,以维持10分钟产生一个新区块,难度随矿工的增加而增大。 5.挖矿:将待确认的交易数据包含到块链中,从而完成对这些交易的确认,矿工可以得到他们所确认的交易中包含的手续费,以及新创建的奖励的比特币(目前2017年08月是5BTC奖励)。简而言之就是接受交易信息,建造区块。 6.矿工:通过不断重复哈希(SHA-256)运算来产生工作量证明的各网络节点。 7.确认:当一项交易被区块收录时,我们可以说它有一次确认(约10分钟)。矿工们在此区块之后每再产生一个区块,此项交易的确认数就再加一。当确认数达到六及以上时,通常认为这笔交易比较安全并难以逆转。 8.双重消费:如果一个不怀好意的用户试图将比特币同时支付给两个不同的收款人,就被称为双重消费。 9.P2P:P2P网络(peer-to-peer,简称为P2P),又称为对等式网络,也叫说点对点网络。这是一种无中心服务器、完全由客户端交换信息的互联网体系。一个用户端即是一个客户节点,又具有服务器的功能。P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。 0x04 浅析原理 看了网上有些文章以一种比喻和故事的形式来说明比特币的原理,本人认为虽然这样较为通俗易懂,但是不可避免的与真正的原理有所偏差,并且会掩盖一些细节,所以接下来将以一次完整的比特币交易流程来分析比特币运行原理。 //建议先了解公钥加密,哈希,数字签名等相关前置知识 以密码学的两位主角 Alice 给 Bob 5BTC为例。 Alice和Bob首先用客户端(比特币钱包)生成密钥对(公钥和私钥,椭圆曲线),这个客户端会先下载比特币所有的交易记录,用来验证余额。公钥经过单向加密哈希函数(SHA256和RIPEMD160)和编码(Base58Check)形成比特币地址,这里不考虑转换,那么公钥就是比特币地址(收款地址),私钥由比特币钱包随机生成,用来做数字签名,由于私钥数量异常巨大,可以认为不会重复,要自己保密藏好不能泄漏,一旦泄漏就相当于现实中的钱包丢了,别人有了你的私钥,可以推出公钥,也就可以用你比特币钱包里的比特币了。 Alice在付款地址输入Bob的公钥,付款金额输入5BTC,这5BTC就用Bob的公钥加密了,只有Bob用私钥才能解密,接着这就形成了一条交易记录,交易数据结构大概如下: #################################### input: txn: 这笔交易转出的金额的来源 scriptSig: Alice的数字签名 output: Amount: 转出金额 scriptPubSig: 用Bob公钥生成的锁定脚本 #################################### 比特币系统要通过txn找到Alice上一个交易中的公钥,再和scriptSig中Alice的私钥验证,验证成功Alice才有权使用这5BTC。Alice的数字签名证明了这条交易是由Alice发出,并且和交易信息的某种独有ID关联,这就避免了伪造和篡改。 交易发生后,将广播全网,一个节点通知附近的其他节点,很短的时间内,全网所有的节点会接到这笔交易。接到这笔交易后,每个节点会先先把交易放入内存,然后对交易进行合法性检验,检验通过后,就形成未确认的交易,这笔交易进入有效交易池,等待被装入区块。比特币网络中矿工节点会从内存的有效交易池中抽取近千笔未确认交易,然后进行打包(区块)。开始不断的计算着幸运数字(关键点1:如何计算?)。当某个节点计算出了这个幸运数字,将计算Hash值所使用的信息组装成一个新区块,记录在自己的硬盘上,并发起一次全网记账。周围的节点在收到广播的消息后,也都记录下这个新区块。由于矿工节点每次都会使用含有上一个区块Hash值的文本来计算当前区块的Hash值,这使得区块链难以被伪造篡改。 矿工需要收听每一笔的交易,普通用户只需要收听计算好的新区块即可(关键点2:如果自己的区块链出现分叉怎么办?)。这时Alice给Bob 5BTC的交易记录所在区块正好被一个矿工节点计算出了幸运数字并广播全网接着加入了节点各自的区块链中,但是要经过约60分钟(6次确认)才能确定这笔交易是真实合理的并且这条交易所在区块的区块链是比特币网络中大家公认的全局区块链。这样,就完成了一次比特币交易。 关键点1:如何计算幸运数字 将有效交易池里的近千笔交易(包括自己获得奖励的交易记录),上一个区块被计算出的Hash值,幸运数字参数组合成一个文本,然后计算这个文本的Hash值。这里使用的哈希算法是SHA-256,通过不断暴力猜解去猜幸运数字,使得这个文本的hash值前有N个零,这就是工作量证明。这个N有变化机制,要维持整个比特币网络在10分钟左右才猜出这个幸运数字。这也就是挖矿的过程,成功计算出幸运数字的矿工将获得凭空的比特币奖励。 关键点2:如果自己的区块链出现分叉怎么办? 相信最大工作量,也就是分叉较长的那一条区块链。所以不必立刻相信收听到的区块,可以再收听大概6个区块,如果没有更长的分叉,说明这条链就是比特币网络大家公认的链。 0x05 如何避免双重消费 首先回顾一下区块的构成,上一个区块的hash+一堆交易记录+幸运数字。 假设Alice在付款5BTC给Bob的同时也给自己另一个钱包付款5BTC(假设Alice只有5BTC),这时,第一条合理交易的区块被计算出幸运数字加入区块链,Alice也不甘示弱,用自己的计算力计算出了第二条欺诈交易的区块的幸运数字(Alice此时运气超好),这样就形成了两个不同的分叉区块,它们的上一个区块的hash都一样。 接着全场矿工继续计算幸运数字生产新区块加入到区块链中,由于比特币规则相信最长的即最大工作量的那条链,所以为了自己的欺诈交易是公认的,Alice也要不断计算幸运数字生产新区块。除非Alice有超级强大的计算力,能以一节点之力战胜全部矿工节点的计算力,也就是51%攻击,否则在经过多个确认之后,Alice苦心计算的欺诈分叉将被否认。 0x06 比特币安全保护 物理防护:存放私钥的设备要做好抗震防雷之类。 环境安全:确保私钥所在环境是无病毒,后门的。 备份:私钥分开存放,如U盘,移动硬盘或一些网络仓库,最好定期备份。 加密:私钥加密存放,一些加密软件可以做到这一点。 冷钱包:最安全,一些比特币钱包带有冷存储的功能。 总之,要全方面防护私钥。 0x07 其他 1.每 210000 个 block ,生产新 block 的人被认可凭空获得的 BTC 数量比之前的少一半,现在(201708)是5BTC。 2.由1可只,矿工最终将不能凭空获得奖励,那矿工收入怎么来?答案是交易税,交易方为了使自己的交易能尽快被加入区块,尽快被比特币网络最终确认,会在交易记录里加上给矿工的税,鼓励矿工尽快把自己的交易记录加入区块。 3.比特币最终会达到总量约2100万。 4.如果因为电脑崩溃或损坏导致私钥(无备份)丢失,那所拥有的比特币就没人能转走,不能流通,相当于永远消失了。 5.一个区块交易记录上限约2400笔 6.推荐大家去看看比特币原始论文 7.再附上两张网上找的脑图,挺好的 0x08 结语 其实还有很多,如比特币洗钱,投资,赌博之类的就不介绍了,至于比特币的使用和挖矿,我可能会单独写一篇文章来介绍,本人才疏学浅,文章可能会有错漏之处,欢迎指正!一起交流学习! 如果觉得文章不错或者有帮助,点个赞吧。 您的支持就是我前进的动力! 0x09 参考资料 https://bitcoin.org/bitcoin.pdf https://bitcoin.org https://www.zhihu.com/question/20941124 https://www.bilibili.com/video/av12465079/?from=search&seid=6907804228267930743 http://zhibimo.com/read/wang-miao/mastering-bitcoin/Chapter02.html https://blog.codingnow.com/2011/05/bitcoin.html https://zh-cn.bitcoin.it/wiki/保护你的钱包

浅析各种编码(持续更新)

1.ascii (标准): 所有编码的祖先。 二进制八位一组,只能表示128个字符 表1:ascii表(来源于百度百科) Bin(二进制) Oct(八进制) Dec(十进制) Hex(十六进制) 缩写/字符 解释 0000 0000 0 0 00 NUL(null) 空字符 0000 0001 1 1 01 SOH(start of headline) 标题开始 0000 0010 2 2 02 STX (start of text) 正文开始 0000 0011 3 3 03 ETX (end of text) 正文结束 0000 0100 4 4 04 EOT (end of transmission) 传输结束 0000 0101 5 5 05 ENQ (enquiry) 请求 0000 0110 6 6 06 ACK (acknowledge) 收到通知 0000 0111 7 7 07 BEL (bell) 响铃 0000 1000 10 8 08 BS (backspace) 退格 0000 1001 11 9 09 HT (horizontal tab) 水平制表符 0000 1010 12 10 0A LF (NL line feed, new line) 换行键 0000 1011 13 11 0B VT (vertical tab) 垂直制表符 0000 1100 14 12 0C FF (NP form feed, new page) 换页键 0000 1101 15 13 0D CR (carriage return) 回车键 0000 1110 16 14 0E SO (shift out) 不用切换 0000 1111 17 15 0F SI (shift in) 启用切换 0001 0000 20 16 10 DLE (data link escape) 数据链路转义 0001 0001 21 17 11 DC1 (device control 1) 设备控制1 0001 0010 22 18 12 DC2 (device control 2) 设备控制2 0001 0011 23 19 13 DC3 (device control 3) 设备控制3 0001 0100 24 20 14 DC4 (device control 4) 设备控制4 0001 0101 25 21 15 NAK (negative acknowledge) 拒绝接收 0001 0110 26 22 16 SYN (synchronous idle) 同步空闲 0001 0111 27 23 17 ETB (end of trans. block) 结束传输块 0001 1000 30 24 18 CAN (cancel) 取消 0001 1001 31 25 19 EM (end of medium) 媒介结束 0001 1010 32 26 1A SUB (substitute)……

一文读懂域名解析流程

0x01 解析类型 1. A记录:域名->IP 1.1 泛解析:*.lsawebtest.top都能指向同一个IP 2. cname(别名)记录:多个名字映射到同一台计算机,如www和mail这两个别名都指向lsawebtest.top,分别提供www和mail服务。 3. NS记录:指定由哪个DNS服务器解析你的域名,如lsawebtest.top/ns2.lsawebtest.top 4. MX记录:将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理,如@lsawebtest.top结尾的邮件发到MX记录的邮件服务器上,权重小的优先。 5. TXT记录:域名的说明,可用于SPF(它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件)和域名所有权验证。 6. AAAA记录:指向IPv6。 0x02 域名解析流程 //图片来源于网络 1.先查找hosts文件的映射,找到就直接完成域名解析,否则到第二步。 2.查找本地DNS解析器缓存,有映射就完成解析,命令:ipconfig /displaydns,ipconfig /flushdns,否则进行第三步。 3.找首选(本地)dns服务器,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析(权威)。如果要查询的域名不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析(非权威)。否则进入第四步。 4.如果设置了dns转发,则此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,如此循环。如果非转发模式,则首选(本地)dns就把请求发到根dns服务器进行迭代查询直至返回IP到客户机。 以解析www.lsawebtest.top为例: 1.查hosts文件映射,无,下一步。 2.查dns解析器缓存,无,下一步。 3.查首选(本地)dns服务器,无,下一步。 4.首选(本地)dns服务器请求根dns,如图 5.本地(首先)dns服务器向其中一台根dns(root-servers.net)发起请求查询www.lsawebtest.top,如图 返回顶级域top.的ns记录,让你去这几台服务器查询。 6.接着再向其中一台top.域的服务器(c.zdnscloud.com)请求www.lsawebtest.top,返回了lsawebtest.top域的服务器,让你去这其中一台查询,如图 7.接着再向hichina.com查询www.lsawebtest.top,返回一条别名记录,如图 8.当dns请求到别名的时候会终止查询,再对别名发起查询,最终可以获取到一条A记录,就是lsawebtest.top的IP。 0x03 结语 这里说明一下,全球dns根服务器只有13台是不准确的说法,还有很多是镜像站,有兴趣的可以查一下为什么只能有13台根dns服务器和百度的dns解析过程,稍微复杂一点点。

apache开启对put请求的支持

0x00 前言: 最近整理了一下各种http请求,发现xampp里apache默认没支持put请求,所以有此文记录配置apache开启对put请求的支持。 0x01 环境: win7+xampp 0x02 步骤: 1.在httpd.conf中把下面两行的注释去掉(先看看有没有这两个模块,应该有的) LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so 2.修改httpd.conf某段如下 DocumentRoot “C:/xampp/htdocs” <Directory “C:/xampp/htdocs”> # # Possible values for the Options directive are “None”, “All”, # or any combination of: #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that “MultiViews” must be named *explicitly* — “Options All” # doesn’t give it to you. # # The Options directive is both complicated and important.  Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks Includes ExecCGI# # AllowOverride controls what directives may be placed in .htaccess files. # It can be “All”, “None”, or any combination of the keywords: #   AllowOverride FileInfo AuthConfig Limit # #AllowOverride All# # Controls who can get stuff from this server. # Require all granted Dav On AllowOverride None Options All Order allow,deny Allow from all </Directory> 3.解决webdav锁的问题 新建文件DavLock,在httpd.conf中新增一行如下(路径写对应的DavLock文件所在路径) DavLockDB  C:/xampp/htdocs/DavLock 0x03 效果: target url: 192.168.0.101 http method: put upload file name: 111.png local file path: /root/Pictures/1.png <!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”> <html><head> <title>201 Created</title>……