ctfidf实验室超简单的js题

本文介绍了一个简单的JS挑战题,通过URL解码找到隐藏的JS代码,并解释了如何通过输入特定值来解决这个问题。

超简单的js题


这里这里→ http://ctf.idf.cn/game/web/42/index.php



题目来源: 难度:★ 分值:2 已解答数:1469 FirstBlood:闭关修炼中的暗羽渣渣

这个点进去一看什么都没有,就是一个网页。







看一下页面源代码,发现了思路,






这个一看就是URL编码,URL 编码将字符转变成对 URL 解析无意义的无害形式。它将字符转化成为一种特定字符编码的字节序列,然后将字节转换为16进制形式,并将其前面加上”%”。问号的 URL 编码形式为”%3F”。
这个源代码里面说了是将p1+%36%38%36+p2,我将这些复制连接在一起,然后我用了火狐的插件cyrptofox进行解密,flag就出现。(当然你也可以用在线的url解码工具)。

解码以后发现了一段js代码

function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("36452fffb94757a686fd20120be31f73"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit;

通过阅读,知道了如何a.value是36452fffb94757a686fd20120be31f73就成功。
然后将这段字符输进去,得到flag。


问题解决



已经进行切词、去除停用词、标点符号的英文专利摘要文本保存在'tokenized_abstract.csv'中,并且在静态主建模时已经进行了加载,专利摘要对应的时间数据保存在'date.txt'中,尚未加载,已经执行的静态主模型的参数设置如下:from sentence_transformers import SentenceTransformer # Step 1 - Extract embeddings embedding_model = SentenceTransformer("C:\\Users\\18267\\.cache\\huggingface\\hub\\models--sentence-transformers--all-mpnet-base-v2\\snapshots\\9a3225965996d404b775526de6dbfe85d3368642") embeddings = np.load('clean_emb_last.npy') print(f"嵌入的形状: {embeddings.shape}") # Step 2 - Reduce dimensionality umap_model = UMAP(n_neighbors=7, n_components=10, min_dist=0.0, metric='cosine',random_state=42) # Step 3 - Cluster reduced embeddings hdbscan_model = HDBSCAN(min_samples=7, min_cluster_size=60,metric='euclidean', cluster_selection_method='eom', prediction_data=True) # Step 4 - Tokenize topics # Combine custom stop words with scikit-learn's English stop words custom_stop_words = ['h2', 'storing', 'storage', 'include', 'comprise', 'utility', 'model', 'disclosed', 'embodiment', 'invention', 'prior', 'art', 'according', 'present', 'method', 'system', 'device', 'may', 'also', 'use', 'used', 'provide', 'wherein', 'configured', 'predetermined', 'plurality', 'comprising', 'consists', 'following', 'characterized', 'claim', 'claims', 'said', 'first', 'second', 'third', 'fourth', 'fifth', 'one', 'two', 'three','hydrogen'] # Create combined stop words set all_stop_words = set(custom_stop_words).union(ENGLISH_STOP_WORDS) vectorizer_model = CountVectorizer(stop_words=list(all_stop_words)) # Step 5 - Create topic representation ctfidf_model = ClassTfidfTransformer() # All steps together topic_model = BERTopic( embedding_model=embedding_model, # Step 1 - Extract embeddings umap_model=umap_model, # Step 2 - Reduce dimensionality hdbscan_model=hdbscan_model, # Step 3 - Cluster reduced embeddings vectorizer_model=vectorizer_model, # Step 4 - Tokenize topics ctfidf_model=ctfidf_model, # Step 5 - Extract topic words top_n_words=50 )
03-15
假如我用bertopic对英文专利摘要文本进行了静态主表示,在此基础上现在我需要用bertopic自带的topic_over_time动态主建模结合调整c-TF-IDF 算法进行动态主表示,动态主表示设置时间戳 t1=2000-2010 年,t2=2011-2018 年,t3=2019-2024 年。最终,将当前阶段和前一阶段的 c-TF-IDF 平均值作为当前阶段的权重分数,取权重分数前 15 的单词作为动态主的关键词,形成动态主词列表。注意,已经进行切词、去除停用词、标点符号的英文专利摘要文本保存在'tokenized_abstract.csv'中的'Tokenized_Abstract'字段内,并且在静态主建模时已经进行了加载,专利摘要对应的时间数据保存在中'tokenized_abstract.csv'中的'Date'字段内,尚未加载,已经执行的静态主模型的参数设置如下:from sentence_transformers import SentenceTransformer Step 1 - Extract embeddings embedding_model = SentenceTransformer(“C:\Users\18267\.cache\huggingface\hub\models–sentence-transformers–all-mpnet-base-v2\snapshots\9a3225965996d404b775526de6dbfe85d3368642”) embeddings = np.load(‘clean_emb_last.npy’) print(f"嵌入的形状: {embeddings.shape}") Step 2 - Reduce dimensionality umap_model = UMAP(n_neighbors=7, n_components=10, min_dist=0.0, metric=‘cosine’,random_state=42) Step 3 - Cluster reduced embeddings hdbscan_model = HDBSCAN(min_samples=7, min_cluster_size=60,metric=‘euclidean’, cluster_selection_method=‘eom’, prediction_data=True) Step 4 - Tokenize topics Combine custom stop words with scikit-learn’s English stop words custom_stop_words = [‘h2’, ‘storing’, ‘storage’, ‘include’, ‘comprise’, ‘utility’, ‘model’, ‘disclosed’, ‘embodiment’, ‘invention’, ‘prior’, ‘art’, ‘according’, ‘present’, ‘method’, ‘system’, ‘device’, ‘may’, ‘also’, ‘use’, ‘used’, ‘provide’, ‘wherein’, ‘configured’, ‘predetermined’, ‘plurality’, ‘comprising’, ‘consists’, ‘following’, ‘characterized’, ‘claim’, ‘claims’, ‘said’, ‘first’, ‘second’, ‘third’, ‘fourth’, ‘fifth’, ‘one’, ‘two’, ‘three’,‘hydrogen’] Create combined stop words set all_stop_words = set(custom_stop_words).union(ENGLISH_STOP_WORDS) vectorizer_model = CountVectorizer(stop_words=list(all_stop_words)) Step 5 - Create topic representation ctfidf_model = ClassTfidfTransformer() All steps together topic_model = BERTopic( embedding_model=embedding_model, # Step 1 - Extract embeddings umap_model=umap_model, # Step 2 - Reduce dimensionality hdbscan_model=hdbscan_model, # Step 3 - Cluster reduced embeddings vectorizer_model=vectorizer_model, # Step 4 - Tokenize topics ctfidf_model=ctfidf_model, # Step 5 - Extract topic words top_n_words=50 ) 现在,请你给出实现这一操作的python代码帮我完成静态主表示之后的动态主表示。调整后的c-TF-IDF计算公式如下: $ c-TF-IDF_{w,c,r} = \frac{\left(\sqrt{\frac{f_{w,c,r}}{f_c}} + \sqrt{\frac{f_{w,c,r-1}}{f_c}}\right) \cdot \log\left(1 + \frac{M - cf_w + 0.5}{cf_w + 0.5}\right)}{2} $ 文字说明: “其中,( f_{w,c,r} ) 为第 ( r ) 阶段时,词 ( w ) 在聚类簇 ( c ) 中出现的频次,( f_c ) 表示聚类簇 ( c ) 中词数。( M ) 表示簇的平均单词数,( cf_w ) 表示词 ( w ) 在所有簇中出现频次。”
03-15
from sentence_transformers import SentenceTransformer # Step 1 - Extract embeddings embedding_model = SentenceTransformer("C:\\Users\\18267\\.cache\\huggingface\\hub\\models--sentence-transformers--all-mpnet-base-v2\\snapshots\\9a3225965996d404b775526de6dbfe85d3368642") embeddings = np.load('clean_emb_last.npy') print(f"嵌入的形状: {embeddings.shape}") # Step 2 - Reduce dimensionality umap_model = UMAP(n_neighbors=7, n_components=10, min_dist=0.0, metric='cosine',random_state=42) # Step 3 - Cluster reduced embeddings hdbscan_model = HDBSCAN(min_samples=7, min_cluster_size=60,metric='euclidean', cluster_selection_method='eom', prediction_data=True) # Step 4 - Tokenize topics # Combine custom stop words with scikit-learn's English stop words custom_stop_words = ['h2', 'storing', 'storage', 'include', 'comprise', 'utility', 'model', 'disclosed', 'embodiment', 'invention', 'prior', 'art', 'according', 'present', 'method', 'system', 'device', 'may', 'also', 'use', 'used', 'provide', 'wherein', 'configured', 'predetermined', 'plurality', 'comprising', 'consists', 'following', 'characterized', 'claim', 'claims', 'said', 'first', 'second', 'third', 'fourth', 'fifth', 'one', 'two', 'three','hydrogen'] # Create combined stop words set all_stop_words = set(custom_stop_words).union(ENGLISH_STOP_WORDS) vectorizer_model = CountVectorizer(stop_words=list(all_stop_words)) # Step 5 - Create topic representation ctfidf_model = ClassTfidfTransformer() # All steps together topic_model = BERTopic( embedding_model=embedding_model, # Step 1 - Extract embeddings umap_model=umap_model, # Step 2 - Reduce dimensionality hdbscan_model=hdbscan_model, # Step 3 - Cluster reduced embeddings vectorizer_model=vectorizer_model, # Step 4 - Tokenize topics ctfidf_model=ctfidf_model, # Step 5 - Extract topic words calculate_probabilities=True )代码如上为什么拟合后每个主只包含10个主
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值