Pre:
在看sqlmap源码的时候,看了它的crawler,用到了checkSameHost函数.
跟进到lib.core.common公共函数里看checkSameHost函数,产生了一些疑问
checkSameHost函数:
函数作用
用来判断一堆urls是否是相同主机的.
1 | def checkSameHost(*urls): |
测试:
-
http://www.target.com/page1.php?id=1,http://www.target.com/images/page2.phpTrue
-
http://www.target.com/page1.php?id=1,http://www.target2.com/images/page2.phpFalse
-
http://xxx.com,http://www.xxx.comTrue
-
http://aa.xxx.com,http://bb.xxx.comFalse- ???
疑问:
很多时候,http://aa.xxx.com,http://bb.xxx.com这两个子域名是可以解析同一个ip上的,这种情况下sameHost判断应该为True才对,为什么这里为False呢?
answer:
这里的sameHost应该是有歧义严格意义上,是否是sameHost应该通过ip来判断,但是如果url很多的话,都去其解析域名对应的ip,会消耗时间
广义上看,这里的sameHost应该指的是same website.
通过域名来判断是否是相同的网站,是ok的.
域名与ip的关系:
常见的情况下,一个域名与一个ip是对应的.
但是域名与ip的关系不一定是一对一的关系,可以是多对一或者是一对多的关系.
-
多个域名解析到一个ip:
-
一个域名解析到多个ip: