新手-记录一次wifi钓鱼的调试
最近在学习一个wifi钓鱼的东西,模拟某网站(以下简称A)的登录,并在后台储存账号密码到数据库中。
原理很简单,将A的网页下载下来放到本地服务器上,然后搭建wifi,使连接wifi的人访问登录界面时实际上是访问本地服务器。
本来模块挺成熟了,前两天测试正常,今天测试的时候发现点了登录没反应???
倒腾半天无果。但是不是完全没用。
当我输入A的ip时,点击登录没有反应,但是当我输入127.0.0.1访问A时,功能却是正常的。用手机测试也是正常的。
而当我用其他浏览器时,也是正常的,只有用我常用的谷歌浏览器没有反应。换了别人的电脑,发现别人的电脑也是这样,一度怀疑,难道谷歌浏览器还能自动辨别钓鱼网站???
然后打开F12进行调试,发现我在点击登录的时候,出现了一个404 的访问
然后深挖,发现有关的字符串在某个js文件里
但是我的服务器里没有放js文件啊,我只有php文件。
突然想到可能是浏览器的缓存,于是我立马删除一下试试
试了一下,果然好了!
这下我懂了,之所以谷歌浏览器不行,是因为我之前用它正常登陆过,缓存了js文件,所以直接访问该ip时仍会调用js,导致登录失败。而其他浏览器没有缓存,所以均可正常登陆。
而访问127.0.0.1时,由于ip不同,所以浏览器也不会调用js,也能正常运行。
我网站的思路是点击登录的button以后,会提交form表单通过action到另外一个1.php,这个php的功能是将账号密码写入数据库。但是js运行在action之前?
百度了一下明明是php先运行,为什么js会阻挡我的action呢?后来我发现了这么一篇博客:
于是我赶紧打开js文件看一看 果然是submit函数
就是这个false阻止了action的执行,无法跳转到用来储存账号密码的1.php中。
而由于本地并没有连接服务器,所以这个submit只能得到一个404,一直返回false。
好,知道问题的原因以后就得改了,不能清除浏览器的缓存了,这样只能指标不治本,得从根源上解决。
一个方法是直接删掉 index.php(即登录页面)里边的js调用的有关部分,
另一个思路就是把js文件也下载下来放到本地服务器,但是把return false 改成 return true,哈哈有点像逆向里边直接把 je 改成 jne 一样。
但是为了防止其他错误产生,还是直接第一种吧。