第一课 信息收集


第一课 视频
这是《Hacking with Python》系列课程的第一课。如果你还没有关注我们,可以扫描下面的二维码关注我们。也可以关注FlyPython社区,网址:flypython.com,此系列的视频和文字稿,我们都是第一时间更新到社区。




《Hacking with Python》系列课程是用Python入门网络安全的一系列课程,前期以基础知识为主,比较简单,后期以漏洞挖掘为主,让大家可以轻松当上漏洞赏金猎人。最后希望大家可以喜欢,赶快加入学习的队伍当中吧。
声明: 课程例子都以教学为主,严禁用于网络攻击。
第一课,给你一个URL你能收集到什么信息
第一,请求得到的Header
我们可以使用requests库,访问URL,然后把HTTP Header打印出来
比如:




import requests
req = requests.get("http://flypython.com")
print(str(req.headers))
得到的Header:
{'Date': 'Tue, 01 Dec 2020 08:16:37 GMT', 'Server': 'Apache/2.4.38 (Debian)', 'X-Powered-By': 'PHP/7.4.10', 'Set-Cookie': 'session_prefix=8957601095512471c2f32b6bef82766d; expires=Fri, 29-Nov-2030 08:16:37 GMT; Max-Age=315360000; path=/; HttpOnly', 'Link': 'http://flypython.com/wp-json/; rel="https://api.w.org/", http://flypython.com/wp-json/wp/v2/pages/52; rel="alternate"; type="application/json", http://flypython.com/; rel=shortlink', 'Vary': 'Accept-Encoding', 'Content-Encoding': 'gzip', 'Content-Length': '15214', 'Keep-Alive': 'timeout=5, max=100', 'Connection': 'Keep-Alive', 'Content-Type': 'text/html; charset=UTF-8'}
可以看到,Header有很多信息是有用的。
第二,可以通过URL得到服务器的IP,我们使用socket建立连接然后打印IP




import socket
ip = socket.gethostbyname("baidu.com")
print(ip)
39.156.69.79
第三,我们得到了IP,就可以根据ip地址查一下归属地等信息。这里我们使用了ipinfo.io提供的接口




可以得到的信息:
{‘ip’: ‘39.156.69.79’, ‘city’: ‘Jinrongjie’, ‘region’: ‘Beijing’, ‘country’: ‘CN’, ‘loc’: ‘39.9122,116.3561’, ‘org’: ‘AS9808 Guangdong Mobile Communication Co.Ltd.’, ‘timezone’: ‘Asia/Shanghai’, ‘readme’: ‘https://ipinfo.io/missingauth’}
最后我们今天学到的三个方法连起来,接受一个URL参数,打印需要的信息
import sys
import requests
import socket
import json
if len(sys.argv) < 2:
print("Usage: " + sys.argv[0] + "<url>")
sys.exit(1)
req = requests.get("https://"+sys.argv[1])
print("\n"+str(req.headers))
gethostby_ = socket.gethostbyname(sys.argv[1])
print("\nThe IP address of "+sys.argv[1]+" is: "+gethostby_ + "\n")
#ipinfo.io
req_two = requests.get("https://ipinfo.io/"+gethostby_+"/json")
resp_ = json.loads(req_two.text)
print("Location: "+resp_["loc"])
print("Region: "+resp_["region"])
print("City: "+resp_["city"])
print("Country: "+resp_["country"])
此系列课程代码: https://github.com/flypythoncom/Hacking-with-Python
关注我们的微信公众号,获取最新的教程信息




原创文章,作者:flypython,如若转载,请注明出处:http://flypython.com/video/390.html
您必须登录才能发表评论。