zoukankan      html  css  js  c++  java
  • sqli-labs第七题

     1.输入参数id

    修改id值,页面无变化;提示为使用outfile

    2.注入单引号

    单引号触发SQL语法错误,但是没返回什么有用的信息。

    3.测试id参数闭合条件

    注入两个单引号

    返回正常

    注入id='1'

    返回异常,综合分析上面两种情况

      ?id=1'' ?id='1'
    $id 1'' '1'
    结果 正常 正常
    '$id' '1''' ''1''
    结果 正常 错误

    从注入后的数据格式来看,id=1''id='1' 应该都能正常执行而注入id='1'时页面返回异常;id='1''' 能正常执行,id=''1''将会产生错误,因为第一对闭合的单引号内是空的。所以单引号一定是id的闭合条件之一。

    闭合单引号注入永真条件

    返回错误,继续测试id参数闭合条件

     闭合括号,返回错误

     闭合两个括号,返回正常

    为什么想到括号而且还是两个呢??不为什么,猜的。传入参数前后需要闭合的字符就那几个,常用的就是单引号,双引号和括号。

    4.ORDER BY 爆列数

    1,2,3均返回正常,当order by 4时返回错误

    所以查询的列数为3列

    5.使用outfile写文件

    写文件需要得到一个当前用户拥有相应权限的文件夹的绝对路径,这里就作一下弊

    了,毕竟靠手工盲注去爆一个这样的路径对萌新也太不友好了

    在靶机上拿一个路径

    构造注入语句 ?id=')) union select 1,2,3 into outfile 'C:\phpstudy_pro\Extensions\MySQL5.7.26\data\outfile.txt'--+

    失败,八成是权限问题,靶机数据库后台执行 SHOW VARIABLES LIKE "secure_file_priv";

    值为NULL,NULL表示禁止写入。

    参数说明如下:

    secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

    • ure_file_priv的值为null ,表示限制mysqld 不允许导入|导出

    • 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下

    • 当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

    修改Mysql配置文件my.ini将secure_file_priv的值改为目标路径(我这里就是C:phpstudy_proExtensionsMySQL5.7.26data)然后重启Mysql

    再次注入写文件操作

    还是报错,但是实际上已经成功了,虽然可以通过读出文件写入到一个表中然后盲注来检查,偷个懒直接在靶机看吧

    这种情况下一般都可以注入一句话木马,拿shell了。

  • 相关阅读:
    Visual Studio 2008 完全卸载
    设置 Visual Studio 文件版权信息
    安装 Visual Studio 插件 Visual Assist
    下载 / 安装 Visual Studio
    Python help 函数
    Python next 函数
    Python oct 函数
    Python min 函数
    Python reload 函数
    numpy中matrix的特殊属性
  • 原文地址:https://www.cnblogs.com/a-qi/p/13166928.html
Copyright © 2011-2022 走看看