2009年1月4日星期日

白盒测试用正则表达式查特定代码

我们白盒测试的时候,通常喜欢通过正则表达式来查找可能存在注入的文件,之后再慢慢看。
打开EditPlus, 点击“搜索”->“在文件中查找”,弹出的对话框,查找内容填写“((select|update|delete)+.*(from|set)+.*(where)+.*)”,文件类型 填写“*.asp”,文件夹选择校友录所在的文件夹,再把“包含了文件夹”和“正则表达式”选项选上,此正则表达式的意思是查找文件夹下所有的asp文件,如果包含select、update和delete这些SQL语句,就显示出来。如果文件不多,只花一秒钟,结果就能出来。

说明:
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达 式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。很可能你使用过Windows/Dos下用于文件查找的通配符 (wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符 类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以 编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或 0376-7654321)。

没有评论: