CSRF与SSRF常见问题

  • CSRF原理
    通过伪装成受信用用户请求受信用网站。攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点,进行如发邮件,发消息,甚至转账和购买商品。因为浏览器之前认证过,所有被访问站点误以为是真正用户操作而且运行。


    1、目标用户已经登录了网站,能够执行网站的功能
    2、目标用户访问了攻击者构造的URL。
  • CSRF和XSS与XXE有什么区别
    XSS跨站脚本攻击,用户提交的数据中可以构造代码执行,从而实现窃取用户信息等攻击。
    CSRF跨站请求伪造,XSS是实现CSRF的诸多手段的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。
    XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或远程内容,和远程文件保护类似。
    xss与csrf最大区别在于对cookie的使用,xss把受害者的cookie偷过来,csrf则是借用受害者的cookie。
    xss通过劫持用户信息,主动攻击客户端,不需要登录,直接在页面进行语句构造进行攻击
    csrf通过伪造请求,通过用户去访问正常网站,通过伪装访问服务端,需要登录
  • CSRF危害
    1、非法操作:盗取用户信息,篡改用户数据,账户被盗,
    2、信息泄露:欺骗受害者发送请求获取敏感信息,如用户名、密码、个人资料
    3、恶意行为:发送垃圾邮件,传播CSRF蠕虫
    4、引发拒绝服务攻击,向服务器发送大量请求,导致服务器瘫痪,用户无法正常访问
  • SameSite防御CSRF的原理
    SameSite是cookie的一种属性,用于防御CSRF跨站请求伪造攻击,它的原理是通过限制cookie的发送范围,确保cookie仅在安全的上下文中发送,从而防止恶意网站利用用户身份发起请求伪造。
    samesite属性的三种值:
    1、strict:cookie仅在同站请求时发送,即请求的域名与cookie的域名完全一致
    2、Lax:cookie在同站请求和顶级导航的跨站请求(如用户点击连接)时发送,但是跨站的POST请求或嵌入的资源请求中不发送。
    3、None:cookie在所发送的包括跨站请求,但必须同时设置secure属性(即仅通过HTTPS发送)
  • CSRF如何防御
    1、验证referer字段:自己网站的域名
    2、在请求地址中添加token并验证
    3、在HTTP头中自定义属性并验证
    json格式的csrf如何防御
    json格式的csrf存在的条件是POST传参采用json格式,不是传统的paeameter=value的格式。一般采用json格式传输参数,请求包中都有Content-type头,一般服务器也会验证content-Type值是否为application/json,当服务器验证Content-Type时,若不符合要求,会抛出异常,导致传输的数据失效。
    1、用户操作验证,在提交数据时需要输入验证码
    2、请求来源验证,验证请求来源的referer
    3、表单添加token验证
  • SSRF原理
    SSRF服务器请求伪造是一种由攻击者构造恶意数据,形成由服务器端发起请求的一个安全漏洞,一般情况下,SSRF攻击的目标是从外网无法访问的内部系统,正是因为它是由服务端发起的,所有它能够请求到与它相连而与外网隔离的内部系统。
    SSRF形成原因是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址进行严格过滤与限制,攻击者可以构造恶意请求,是服务器发起未授权请求,达到攻击目的。
  • SSRF危害:
    1、内部资产暴漏:数据库、文件系统、配置文件暴漏,对内网web应用程序进行指纹识别,通过访问默认文件实现(readme)
    2、敏感信息泄露:访问未授权api接口、
    3、内网端口扫描,获取服务端口的banner信息
    4、攻击运行在内网或本地的应用程序(fastcgi、rides)
    5、利用file协议读取本地文件。
  • SSRF漏洞防御
    1、过滤输入:限制协议,仅允许HTTP与HTTPS协议,限制内网IP设置URL白名单,避免应用被用来获取内网数据,攻击内网。限制端口。
    2、过滤输出:过滤返回信息,统一错误页面,避免错误信息判断远端服务器状态。
    3、实施严格的授权验证和访问控制机制,确保仅授权用户可以访问授权资源。
    4、限制端口,设置访问常见端口如80、443、8080。禁止30x跳转
  • SSRF常见场景
    1、社交分享功能:获取超链接的标题等内容进行显示。web应用通常会获取目标URL地址网页内容中的标签的文本内容作为显示,如果没有对目标地址进行过滤就会造成漏洞。
    2、转码服务:通过URL地址把源地址的网页内容调优使其适合手机屏幕浏览
    3、在线翻译:给网页翻译对应网页的内容,百度,网页
    4、图片加载、下载:点击下载图片到本地,通URL地址加载或下载图片

    5、编码处理属性信息处理、文件处理:如ffpmg、docx、xml处理器等
    6、URL中的关键字:url、link、src、u、display、imageURL、
    7、远程服务器请求资源
  • SSRF利用
    1、file协议:主要用户访问本地计算机中的文件(file:///文件路径)读取目标机有权限且确定路径的文件
    2、Dict协议:探测本地服务器(127.0.0.0)的端口以及内网服务器存活及开放端口(dict://serverip:port/命令:参数)

    3、gopher协议:信息检索工具。支持GET,POST请求,可以先截获GET、POST请求包,在构成符合gopher协议的请求。
    gopher://:/后面接TCP数据流gopher的默认端口是70,


    image
  • SSRF绕过技巧
    1、利用[::]绕过localhost http://[::]:80 == http://127.0.0.0
    2、利用@ http://example.com@127.0.0.1/
    3、利用短地址 https://bit.ly/2QyXEsc == http://127.0.0.1
    4、利用DNS解析 在域名上设置A记录,指向127.0.0.1
    5、利用句号 127。0。0。1 == 121.0.0.1
    6、利用进制转换 16进制或8进制 http://127.0.0.1 == http://0177.0.0.1
  • CSRF与SSRF和重放攻击的区别
    CSRF是客户端引起的跨站请求伪造,SSRF是服务器端发起的,重放攻击是将截获的数据包进行重放,达到身份认证等目的。
  • Cookie与session的区别
    cookie与session是客户端与服务器之间保持状态的解决方案
    1、存储的位置不同,cookie:存放在客户端;session存放在服务器端,session存储的数据比较安全
    2、存储的数据类型不同
    3、csrf跨站请求伪造,伪造用户身份,冒用用户身份。更像钓鱼,用户攻击用户
    4、ssrf伪造一个服务端请求,攻击者借由服务端为跳板来攻击目标系统。用户攻击服务器
    两者都是键值对的结构,但针对的值类型有差异。cookie:value只能是字符串类型,session:value是object类型
    3、存储的数据大小限制不同
    cookie:大小受浏览器的限制,很多是4k;session理论上受内存限制
    4、生命周期不同
    cookie的生命周期是累计的,从创建时就开始记时,20分钟后,cookie生命周期结束
    session的生命周期是间隔的,从创建时,开始计划时在20分钟,没有访问session,那么session生命周期被销毁。
  • session的工作原理
    session是客户端登录完成之后,服务器会创建对应的session,session创建完之后,会把session的id发送给客户端,客户端再存储到浏览器中,这样客户端每次访问时,都会带着sessionid,服务器拿到sessionid之后,在内存找到对应的session这样就可以正常工作了。
  • 在渗透测试中SSRF漏洞常见存在点的函数有哪些
    1、PHP函数:
    file_get_contents():将整个文件读入一个字符串。支持HTTP/HTTPS/FTP等URL协议。
    fscokeopen():打开一个网络连接套接字。
    curl_exec():执行curl会话。
    fopen():打开文件或URL
    readfile():输出文件,直接输出相应内容
    2、python函数:
    urllib.request.urlopen(url).read():网络请求库
    request.get(url,...):跟随重定向
    httplib.HTTPConnection():较底层的http客户端
    3、java函数:
    new Socket(host,port)
posted @ 2025-02-08 11:27  予遂计划  阅读(241)  评论(0)    收藏  举报