• 记录一次奇葩渗透中的点点滴滴


      首先,我要抱怨一下补天(自己公司的算了别太狠了),一个超级简单的漏洞还要审核那么多细节,竟然说我细节不全不通过,也是服了。好吧,不多说了。

      记录一下一次奇葩渗透中遇到的两个问题,好奇怪还都是主流漏洞的SQLI一个,XSS一个。还是增加了很多见识。

      第一个问题SQLI:

      今天在测试参数时候发现返回的是json,报错信息处理了,也就没太在意,认为没有回显,爆不出数据,算是没有注入。结果Burpsuite的结果赤裸裸的红叹号,大写SQL Injection亮瞎了我的狗眼。

      结构是这样的:我测试的是

    1 https://a.b.c.d/xxx.php?parameter=10' 

      结果返回的是json,在这个json中惊奇的发现,SQL Syntax字样。原来,服务器本身再次发起了一个请求:

    1 https://127.0.0.1/yyy.php?id=10'

      我的参数被传递进去之后拼接了SQL语句,然后,神奇的是,第二个请求的响应报文被完整的放在json中返回给了我,而且第二个:

      没有处理报错,没有过滤,没有预编译。

      没有处理报错,没有过滤,没有预编译。

      没有处理报错,没有过滤,没有预编译。

      于是赶紧跑下SQLmap,果断爆出了数据。

    1 python sqlmap.py -l ./sqlinjection.txt -p parameter --batch

      结果就出了数据,当然另外一个类似的情况虽然有报错,但没有注入出数据。

      反思点:

      渗透角度

      /*一个站点内部可能会有新的请求会拼接你的参数,而且没有处理报错,没有过滤,没有预编译,所以,不要看到一两个参数没有注入,就不做参数SQL注入的测试了。*/

      防御角度

      /*内部请求也需要做好输入输出过滤,屏蔽报错信息,使用预编译方式执行SQL语句。*/

      

      第二个问题XSS的:

      这个原理很简单,原来POST的请求,使用GET去访问,污染参数,返回时,污染的参数带有简单的payload:

    <img src=1 src=alert(1)>

      这个payload被返回到页面,JS语句执行。但是我突然发现,刚刚打开火狐浏览器时候第一次打开OK,再刷新啥的就返回json被火狐解析了。经过请教高人指点,发现是Content-Type字段不一样,而不一样的原因在于Cookie。

      刚刚打开时后不知道什么原因没有带着cookie(不知道为啥,第二次就有cookie了,当然cookie不对也能起效)

      两次返回不同:所以第一次执行,第二次失败了

    1 Content-Type:text/html                   #第一次
    2 Content-Type:application/json            #第二次

      反思点:

      渗透角度

      /*不登录时候访问一些页面,尤其使用GET传递参数(无论原先是POST还是GET)有时候也能发现惊喜*/

      防御角度

      /*对于未登录直接访问的一些报错要处理,无论登录未登录输入输出要过滤特殊字符,不要妄想使用其他方式规避过滤,就可以防御住XSS*/

      /*对于框架本身存在的问题要予以修正,及时关闭调试模式,避免因为调试报错信息导致出现问题*/  

      /*内部请求或者二次请求的返回的具体信息,如必须要返回给用户,则应处理过滤掉敏感信息后写入响应报文*/

  • 相关阅读:
    如何利用Typora编写博客,快速发布到多平台?
    bios怎么开启ahci模式
    IDENTITY_INSERT 设置
    【热门测试技术,建议收藏备用】项目实战、简历、笔试题、面试题、职业规划
    k8s节点简介、移除节点、新增节点
    正确理解jmeter线程组之RampUp
    Ingress资源规范
    使用dockercompose.yml安装rabbitmq集群
    使用sonarqube对java项目进行分析
    SonarQube支持Gitlab授权登录
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/7740340.html
Copyright © 2020-2023  润新知