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.php
True
-
http://www.target.com/page1.php?id=1
,http://www.target2.com/images/page2.php
False
-
http://xxx.com
,http://www.xxx.com
True
-
http://aa.xxx.com
,http://bb.xxx.com
False
- ???
疑问:
很多时候,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: