开卷看题
/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/1.png)
这。。想改baidu的DNS解析不现实了,只能改本地的了
小试牛刀
HOST文件介绍:传送门
总结就是一句话:以文件形式存储的DNS记录集
知道了host文件的原理之后,我们直接修改Host文件(如果提示无法修改等权限问题看最后)
/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/2.png)
访问flag.baidu.com
/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/3.png)
YES,成功拿下
另辟蹊径
除了修改host这种改变DNS解析结果的方式,还有木有别的方法呢?当然有
首先说一下一次HTTP的过程:
- 客户机发起DNS请求
- DNS服务器将域名对应的IP发送回客户机
- 客户机向指定IP的服务器发起HTTP请求
- WEB服务器返回数据
有没有意识到什么?
对,修改DNS只是告诉了电脑该向谁发送数据,我们可以直接告诉电脑发送的目标
目标服务器IP:123.206.87.240
先正常访问并抓包:
/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/4.png)
可以看到,直接访问会返回400
了解WEB开发的小伙伴这时候肯定想到了,WEB服务器是根据什么判断不同站点的
所以嘛,将host字段修改为:flag.baidu.com后重新发送
/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/5.png)
YES,拿下flag,估计小伙伴们会产生以下疑惑:
- 为什么目标不改成flag.baidu.com
- 为什么修改了host字段就可以了
这里面涉及到一些WEB中间件知识,希望好好研究一下,如果有困难可以联系我
疑难杂症
上面说了修改host文件可能存在权限不够的问题,这里给出两种解决方案
Windows
找到host文件–>右键–>属性–>安全–>编辑
/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/6.png)
然后把当前用户的权限全部勾选
/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/7.png)
—–>或者直接使用vs code编辑(博主使用的方法)
Linux
- 以超级用户身份操作:sudo vim /etc/hosts
- 改变文件的属主:sudo chown user:root /etc/hosts(user代表新属主)
后记
道路千万条,目标就一个
不要被任何人的WP束缚自己的思路