CSRF(Pikachu靶场练习)
CSRF(get)自己任意输点东西,回显登录失败,查看源码没发现什么
点开提示,登录进去看看
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112932686-559578951.png
看到可以修改个人信息,我们把居住改成China,修改成功,没发现urlhttp://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php有变化
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112932127-2056612743.png
这次我们在submit时抓包看看
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112931611-1342170298.png
/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=111&add=China&email=lili%40pikachu.com&submit=submiturl上并没有携带认证信息,所以在用户登录状态下(其实这个链接里面是不包含用户名的,谁登录都无所谓,只要有人登录着就行,登录着的用户的信息就会被改成url提供的那些),试试改一改上面的链接,好比把性别改一改。payload:
pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=111&add=China&email=lili%40pikachu.com&submit=submithttps://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112930851-60528337.png
修改成功
由于这关session时间特殊短(大概不到1min)可能会导致用户登录之后后端检测结果是用户未登录
网上有很多短链接网站可以修饰url(百度搜索“短链接”就有很多)
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112930233-1798494635.png
先查抄是否登录,如果没登录则跳转到登录页面。如果用户已登录,就不再做任何验证,直接将前端传来的数据下到数据库了(看代码这关还有sql注入漏洞呢)。
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112929117-1228237020.png
CSRF(post)
和上一题一样修改个人信息的时候用bp抓包
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112926159-1648772379.png
依旧没有认证信息,有CSRF漏洞。
但是这一关是post类型,URL不再表现修改参数,所以无法再使用上述办法(即通过URL来伪造哀求)举行修改,
需要我们去构造一个html,这里我们直接用burp的工具生成
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112924445-668000064.png
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112923556-292590325.png
点击用浏览器测试
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112922347-570936017.png
点击提交
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112921359-1127313176.png
直接跳转
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112920804-1370662738.png
CSRF token
登录之后,修改个人信息时bp抓包
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112919969-475523680.png
发现有token字段
token验证原理
CSRF的主要问题是敏感操作的链接容易被伪造
每次哀求,都增长一个随机码(需要够随机,不容易伪造),背景每次对随机码举行验证
网页接受从背景发过来的token,类型不可见。将其一并提交给背景举行验证。每次革新,背景发送过来的token都不一样,起到了防止伪造的作用。
删了token行不行,显然是不行嘟
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112916260-690807026.png
多抓几次包发现token是无规律的,在一定水平上防御了CSRF攻击
查看源代码
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112913554-1208462394.png
https://img2023.cnblogs.com/blog/3306080/202405/3306080-20240510112909933-180893380.png
修改用户信息时,服务器会比较url中的token字段和session中的token字段,如果雷同才能修改用户信息。
修改完用户信息之后,会用set_token()函数生成新的token,将其返回到html表单中并隐藏起来,以便下次用户修改信息期间入url。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]