Google hack语法

intext:关键字,把网页正文中某个关键字做为搜索条件,然后搜索全世界网页正文中含有这些关键字的网页。

allintext:关键字。与intext功能相同 。

intitle:关键字,把网页标题中某个关键字做为搜索条件,然后搜索全世界网页标题中含有这些关键字的网页。

allintitle:关键字,功能相同。

cache:关键字。搜索含有关键字内容的 cache。比如搜索北京大学网站服务器中缓存的内容,cache:pku.edu.cn。

define:关键字。
搜索关键字的定义。比如查找 html 的定义

filetype:文件名.后缀名。
搜索特定的文件。比如我要搜索信息安全方面的论文,我们输入“信息安全论文
filetype:doc”就可以找到了。

info:关键字。
这个语法用于搜索指定站点的一些基本信息。比如搜索北京大学网站的一些信息。

inurl:关键字。
搜索含有关键字的 URL 地址。这个语法非常的重要,使用的也是最为频繁,我们还可以使用 allinurl 来更加精确的定位 URL 地址。比如搜索含有 movie 的 URL 地址,输入“inurl:movie”即可,那么找出来的大部分是电影网站。

link:关键字。查找与关键字做了链接的 URL 地址,利用它我们可能搜索到一些敏感信息。

site:域名。返回域名中所有的 URL 地址,它可以探测网站的拓扑结构进行,也是非常的重要,使用非常频繁。比如搜索北京大学所有学院的 URL 地址,我们输入“学院 site:pku.edu.cn”就可以搜索到它所有的学院

related:URL
搜索与指定 URL 相关的页面。比如搜索与北京大学相关的网页,我们输入关键字
“related:pku.edu.cn”即可看到。

stocks:搜索有关一家公司的股票市场信息
insubject:搜索 Google 组的标题行
msgid:搜索识别新闻组帖子的 Google 组信息标识符和字符串
group:搜索 Google 组搜索词汇帖子的题目
author:搜索新闻组帖子的作者
bphonebook:仅搜索商业电话号码簿
rphonebook:仅搜索住宅电话号码簿
phonebook:搜索商业或者住宅电话号码簿
daterange:搜索某个日期范围内 Google 做索引的网页
inanchor:搜索一个 HTML 标记中的一个链接的文本表现形式。

不过需要注意以下几点:(大概和正则匹配表达式无太大差别)
google 搜索多个关键字时之间用间隔。空格表示逻辑与操作。
google 中-表示逻辑非操作。如 A-C 表示搜索有 A 但没 C 的网页。
google 中 OR 表示逻辑或。如 AORB 表示搜索含有 A 的网页 B 的网页 和同时含 A 和 B 的网页。
google 中精确搜索用双引号,比如我们搜索脚本黑客和"脚本黑客",两者之间的差别就是一个双引号,显示了他们搜索结果的差别。

google 中的通配符。*表示一连串字符,?代表单个字符。含有通配符的关键字要用引号。
google 对英文关键字的大小写不敏感。
google 对出现频率极高的英文单词做忽略处理。如 . com i www http 等。如果要对忽略的关键字进行强制搜索,则需要在该关键字前加上明文的”+”号。
google 大部分常用英文符号(如问号,句号,逗号等)无法成为搜索关键字,加强制也不行。
还有一点就是,可能大家都知道 BAIDU 的网页快照,其实 Google 也有这个功能
的,他的 URL 地址是 http://www.googlesyndicatedsearch.com/u/berkeley,比如我们要快照北京大学,那么输入北京大学(pku.edu.cn)的网址就可以了。

 

JavaScript 自动添加分号机制的解惑

自从知道了JavaScript拥有自动添加分号的机制之后,在偶然间看到代码:

var

s = 1,

b = 2,

c = 3;

这样的代码,产生疑惑,自动添加分号机制会不会在var处自动添加分号使其变成

var;产生这样的断句作用(大部分使用JavaScript的人都知道分行return这种写法会被这个自动添加分号的机制带到坑里)然而机制的本身实际上是判断语句的完整性,也就是说在看到var之后,判断系统将var归类为还未完成的语句,var是变量的声明,后面并没有跟上变量,语句还并未完成所以不会添加分号,而return这样的语句是可以直接执行的,(即return;这样的形式也是可以直接执行的)将会被判断为语句是完整的,自动添加上;

静态页面和动态页面的区别(转载)

一、静态web页面:
1、在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。
2、为了让静态web页面显示更加好看,使用javascript/VBScript/ajax(AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。)但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。
3、静态web无法连接数据库;
4、静态web资源开发技术:HTML;
5、由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。
二、动态web页面:
动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server来处理。
如果客户端请求的是静态资源(*.htm或者是*.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。
如果客户端请求的是动态资源(*.jsp、*.asp/*.aspx、*.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。
再进一步深入分析动态web的访问过程:浏览器访问web时,看似是直接访问的jsp页面,其实是,最先到达的地方是服务器,服务器创建好req和resp对象后再给jsp页面使用。在jsp中完成设置字符集和取得表单参数后再调用servlet,完成业务处理。然后返回到jsp,jsp就会生成相应的html页面。该页面会返回到服务器,再由服务器,通过response对象返回给客户端。
为什么需要web服务器?(web server)
1)不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。
2)WEB服务器就是这样一个程序,它用于完成底层网络通迅,处理http协议。使用这些服务器,We应用的开发者只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。
常用动态web资源开发技术:JSP/Servlet、ASP、PHP等。
三、关于两者区别的简单直接的描述
1、静态页面就是设计者把页面上所有东西都设定好、做死了,然后放上去,不管是谁在任何时候看到的页面内容都是一样的,一成不变(除非手动修改页面内容)。静态html页面文件,可以直接用本地的浏览器打开。比如:file:///Users/Phil/Documents/DevOps/HBuilderProjects/testJSP/index.html。
2、动态页面的内容一般都是依靠服务器端的程序来生成的,不同人、不同时候访问页面,显示的内容都可能不同。网页设计者在写好服务器端的页面程序后,不需要手工控制,页面内容会按照页面程序的安排自动更改变换。
3、html是w3c规范的一种网页书写格式,是一种统一协议语言,静态网页。我们上网看的网页都是大部分都是基于html语言的。jsp是一种基于动态语言,jsp可以实现html的所有任务,4、HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性语言,为什么说是解释性语言呢?因为,只要你有一个浏览器那么它就可以正常显示出来,而不需要指定的编译工具,只需在TXT文档中写上HTML标记就可以正常显示。
JSP(Java Server Page)是Java服务端的页面,所以它是动态的,它是需要经过JDK编译后把内容发给客户端去显示,我们都知道,Java文件编译后会产生一个class文件,最终执行的就是这个class文件,5、JSP的前身是servlet;6、html和jsp的表头不一样,这个是JSP的头“ <%@ page language=”java” import=”java.util.*” pageEncoding=”gbk”%>”在表头中有编码格式和倒入包等。也是很好区分的,在jsp中用<%%>就可以写Java代码了,而html没有<%%>。
7、,不认识jsp或者asp什么什么的,但是有时候界面需要逻辑控制,所以我们就用相应的技术来实现,这样比较方便。而jsp在后台通过服务器解析为相应的html,然后在供浏览器识别显示。例如
<%
if(flag == a){
<label>a<label>
}else {
<label>b<label>
}
%>
服务器在读取到这段代码后,根据相应的业务逻辑,编译成相应的servlet,再由servlet输出到页面(输出的就是html)。
四、实验测试
1、在HBuilder中创建jsp页面,其内置的web静态服务器不能解析jsp表头,只能作为文本显示输出,但是可以解析其中的html部分。浏览器不能直接打开jsp文件。jsp页面如果想正确的显示,需要web容器进行解析。
2、在IntelliJ中创建web application,需要启动tomcat,才能运行jsp,可以顺利解析jsp的表头。
转载自:https://www.cnblogs.com/bluesungz/p/5955170.html

记Tiny-CTF的一次解题思路(MISC项)

一直对CTF感兴趣,近来参加了学校的CTF新生赛,收获颇丰,话不多说,直接上题。

1.Find

此题根据链接下载之后发现为一个find.jpg的图片文件

根据一般的杂项经验,认为flag是藏在图片文本中,果不其然用记事本打开发现 这样的长串编码。

结尾为=,符合base64加密特点,故尝试用base64解码得到flag:0xFA{02077b77583180585fa64146739d503b}