打开之后是这样的,没有发现反序列化函数,但是发现有一个@eval,想到了一句话,这是用base64进行传参首先传参phpinfo();看看,需要经过base64编码 http://e0cc90ac-d4bc-450c-a6a4-476298ce7c18.node3.buuoj.cn/?Ginkgo=cGhwaW5mbygpOw== 1 找到disable_functions,发现过滤了许多危险函数我们上传一个一句话木马看看eval($_POST[123]);,经过base64是ZXZhbCgkX…
最后一个字段,也就是e_lfanew,的值表示PE头相对于文件首部的偏移,也就是说,在它的值所对应的位置,就是PE头的地址, 数据结构名称 值 e_magic: 0x5A4D->‘MZ’ e_cblp: 0x0090 e_cp: 0x0003 e_crlc: 0x0000 e_cparhdr: 0x0004 e_minalloc: 0x0000 e_maxalloc: 0xFFFF e_ss: 0x0000 e_sp: 0x00B8 e_csum: 0x0000 e_ip: 0x0000 e_c…
序 好长时间没有认真写博客了,过去的一年挺忙的.负责过数据库.线上运维环境.写代码.Code review等等东西挺多. 学习了不少多方面的东西,不过还是需要回归实际.加强内功,方能扛鼎. 去年学习Mysql列举了大纲,书写了一部分.后来进入到工作状态,就没有继续书写.当然其实没有书写的内容部分已经总结到了公司内部的wiki中,或者在工作过程中大半也应用过,也懒得书写下来了.看什么时候又有心情,重新回顾总结一下吧. 下一步的学习计划 数据结构.算法.源代码解读.多线程(哎,学无止境) 为什么先说…
一般来说,很多的参考资料上面都会说,http 是一个基于请求/响应的工作模式,然后画出一张浏览器和服务器的 b/s 结构图,再画上两个箭头,表示请求和响应,应该说这么解释是易懂的,一般也是够清楚的,但是对于像我这样的考据癖来说,这么简单的解释显然是不够的,在我们点击一个网址,到它能够呈现在浏览器中,展示在我们面前,这个过程中,电脑里,网络上,究竟发生了什么事情,其实是很有意思的,也是值得去探究的 .可以参考这本<http权威指南> 服务器启动监听模式 那我们就开始了,故事其实并不是从在浏览器的…
输入地址 浏览器查找域名的 IP 地址 这一步包括 DNS 具体的查找过程,包括:浏览器缓存->系统缓存->路由器缓存... 浏览器向 web 服务器发送一个 HTTP 请求 服务器的永久重定向响应(从 http://example.com 到 http://www.example.com) 浏览器跟踪重定向地址 服务器处理请求 服务器返回一个 HTTP 响应 浏览器显示 HTML 浏览器发送请求获取嵌入在 HTML 中的资源(如图片.音频.视频.CSS.JS等等) 浏览器发送异步请求 1.我…
在我们点击一个网址,到它能够呈现在浏览器中,展示在我们面前,这个过程中,电脑里,网络上,究竟发生了什么事情. 服务器启动监听模式 那我们就开始了,故事其实并不是从在浏览器的地址栏输入一个网址,或者我们抓着鼠标点击一个链接开始,事情的开端要追溯到服务器启动监听服务的时候,在某个未知的时刻,一台机房里普普通通的刀片服务器,加上电,启动了操作系统,随着操作系统的就绪,服务器启动了 http 服务进程,这个 http 服务的守护进程,(daemon),可能是 apache,也可能是 nginx,不管怎么…
github github-myBlob 从输入URL到页面加载完成的整个过程 首先做 DNS 查询,如果这一步做了智能 DNS 解析的话,会提供访问速度最快的 IP 地址回来 接下来是 TCP 握手,应用层会下发数据给传输层,这里 TCP 协议会指明两端的端口号,然后下发给网络层.网络层中的 IP 协议会确定 IP 地址,并且指示了数据传输中如何跳转路由器.然后包会再被封装到数据链路层的数据帧结构中,最后就是物理层面的传输了 TCP 握手结束后会进行 TLS 握手,然后就开始正式的传输数据(如…
输入网址回车或者刷新页面到页面传染出来的整个流程 DNS 解析 HTTP三次握手 -> TCP/IP连接 浏览器发送请求 服务器返回请求的文件 (html) 浏览器渲染 1. DNS 解析 查找缓存 Chrome搜索自身的DNS缓存,看有没有该域名对应的IP地址(chrome://net-internals/#dns) Chrome会搜索操作系统自身的DNS缓存(浏览器没有找到缓存或者缓存已经失效) 读取本地的HOST文件(操作系统的缓存没有找到)(mac: etc/host) 浏览器发起一个D…
数据层一般会给人带来一些困扰,在于其定位不准确.聚合Model的工作也可以放在逻辑层做,但会导致逻辑层变重,经常出现大段晦涩代码.因此我的建议是保留Model聚合层,尽管会导致工作量的略微增加,但却可以使代码逻辑更加清晰,即每一层都只做自己该做的事. 数据层可以不存在的理由在于逻辑层的业务聚合层已经做了类似的事.但区别在于,业务聚合层是以业务流程来划分的,而数据层则是更为细分的DB层上的聚合. 举个简单的例子,业务中经常会涉及到活动,一方面活动有自己的各类配置,比如规则.奖励.周期等,一方面活动…
开源Linux 长按二维码加关注~ 上一篇:SSH只能用于远程Linux主机? 1 HTTP HTTP 协议是个无状态协议,不会保存状态. 2 Post 和 Get 的区别 先引入副作用和幂等的概念. 副作用指对服务器上的资源做改变,搜索是无副作用的,注册是副作用的. 幂等指发送 M 和 N 次请求(两者不相同且都大于 1),服务器上资源的状态一致,比如注册 10 个和 11 个帐号是不幂等的,对文章进行更改 10 次和 11 次是幂等的. 在规范的应用场景上说,Get 多用于无副作用,幂等的场…