你对着浏览器按下F12时所看到的那些HTML代码,实际上乃是PHP在服务器上运行之后所吐出的结果,别去指望能够直接看到PHP原文件,因为那东西根本就不会传到你的电脑之上,然而通过对这些公开信息进行分析,你依旧能够拼凑出这个网站的大致逻辑以及数据结构。
扒开浏览器看门道
目标网站被打开之后,就便按下F12键,如此一来开发者工具便会弹出。网络标签页之内,记录着页面加载之际的所有请求,重点需关注那一些类型为document的请求,它们通常是由PHP生成的HTML骨架。每当点击某个请求,便能够看到服务器返回的完整响应内容,这里面涵盖了PHP程序输出的最终结果。
所展示在元素面板之中的,乃是当前页面的DOM结构,于此你能够见到所有HTML标签的层级关系。有时PHP会依据不同条件而输出各异的HTML结构,借由对比不同状态之下DOM的改变,便可推断出后端逻辑的判断条件。就像登录前后页面元素出现的变化,便能够瞧出权限控制的实现方式。
抓包工具逮住每一次通信
Fiddler 或者 Charles 这类抓包工具安装好后,浏览器将代理端口 8888 配好走代理状态,所有经过的 HTTP 流量就能够看到。登录按钮被点击或者表单被提交的时候,php 结尾的那些请求格外值得留意。请求头当中的 Cookie 以及 User - Agent 或许含有服务器识别所需的关键信息,响应体当中则有可能隐藏着接口返回的 JSON 数据。
对浏览器开发者工具所看不到的内容进行抓包,能够获取到,像是AJAX异步请求的完整数据包之类的东西 ,分析这些请求的参数格式以及返回内容,这有助于你去理解前端与后端是怎样进行交互的 ,有些网站会运用POST方法来提交加密参数,借助抓包就能够知晓这些参数的具体名称以及格式。
爬虫框架批量收割页面
编写一个Python脚本,运用requests库去发送GET请求,接着使用BeautifulSoup对返回的HTML进行解析,如此便可自动化地收集页面内容。将循环设置好,用以遍历站内的所有链接,要记得加上延时,以此避免IP被服务器封禁。当爬虫运行完毕后,你能够获取到整个网站的页面快照以及链接结构。
特别有作用的是,提取页面之中的表单字段,它们对PHP程序需要去接收的那些参数起着暗示的作用。比如说,搜索框所对应的input标签里面name属性的那个值,极有可能就是后端脚本用以接收关键词所使用的变量名。把所有页面的表单都收集起来,便能够绘制出这个网站的数据交互地图。
翻找服务器遗留的宝贝
有一些粗心大意的管理员,会将备份文件遗留在服务器之上。尝试着在域名的后面,添加index.php.bak或者index.php~,然后去查看一番。运用DirBuster这类的目录扫描工具,跑上一遍,说不定就有可能觅得phpMyAdmin或者编辑器的临时文件噻。那.swp文件乃是vim编辑器崩溃之后遗留下来的,把它下载下来并予以打开,有时能够瞧见部分的PHP代码咧。
察觉到这类文件之际,别急于满心欢喜,要先瞧瞧文件的大小以及修改的时间。要是属于几KB的文本文件,那就用记事本将其打开,瞅一瞅其中的内容。一旦确定是源码,即刻进行截图,把证据留存下来,而后再告知网站的管理员。这样的行为归属于安全测试的范畴,要是擅自凭借这些信息去做别的事情的话,那可就违法了。
通过开源CMS反推架构
瞅一瞅网页底部是不是存在像 Powered by Discuz 这种字样,又或者去查验 CSS 文件路径里头有没有涵盖像 dedecms 等之类的特征。前去访问 /robots.txt 和 /readme.html 文件,好多开源程序会于此处留存版本相关信息。把对应的版本的开源代码给下载到本地,对模板文件以及 JS 调用的接口路径加以对比。
要是发觉网站运用了WordPress,那么其在文章页的URL一般会含有像p=123这般的参数。于本地构建相同版本的WordPress,对照数据库结构以及核心函数,便能够推断出目标网站大概改动了哪些地方。插件目录之中的文件命名风格同样能够给你提供线索,前往官方插件库搜寻一番就能够知晓用的是哪一款。


还没有评论,来说两句吧...