在cURL中使用被盗的cookie来绕过CSRF

MrM*_*Mgr 11 php cookies curl csrf yii

我必须处理一个网页.此网页基于YII framework,并且登录页面受到保护CSRF tokens.当我通过登录凭据时POST method.我得到的error 400The CSRF token could not be verified消息.

我不知道如何通过这种保护.我不明白这个机制.当我通过Chrome浏览器登录时,我会看到POST消息的样子.它有4个参数:CSRF密钥,登录名,密码,一个空变量.浏览器如何获得正确的CSRF密钥进行打磨?

我有这个网页的登录名和密码,我可以以普通用户身份登录.只有登录页面受CSRF保护.我可以在正常登录时使用浏览器创建的cookie(如何做),在登录页面后给出cookie to cURL并开始处理URLs

The*_*ost 1

CSRF 令牌的存在使这一精确操作变得困难。您需要一种更好的方法来使用 PHP 来欺骗浏览器。为此,请将所有 Cookie 存储在通常称为“Cookie 罐”的地方。PHP 的curl 实现具有该功能。从现在开始,路由到此站点的所有curl 请求都应该使用此cookie jar。

接下来,您需要解析登录页面以获取提交的所有字段。这包括用户名、密码、CSRF 和其他隐藏字段。确保您对每一项都有价值观。如果它不应该由您输入(例如隐藏输入),请抓取登录页面的 HTML 并将这些字段放入您可以在登录 POST 中传递的变量中。另外,请务必发送您抓取的登录页面的 url 作为登录 POST 中的引荐来源网址。

解析 html 可能很乏味,但如果您熟悉 CSS 选择器,像SimpleHTMLDOM这样的库应该会让它变得简单。