<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>养老 on Fish Site</title>
        <link>https://pencilfishdaydream.fun/tags/%E5%85%BB%E8%80%81/</link>
        <description>Recent content in 养老 on Fish Site</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <copyright>pencil</copyright>
        <lastBuildDate>Thu, 06 Nov 2025 19:37:13 +0800</lastBuildDate><atom:link href="https://pencilfishdaydream.fun/tags/%E5%85%BB%E8%80%81/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>pointer overflow ctf</title>
        <link>https://pencilfishdaydream.fun/p/pointer-overflow-ctf/</link>
        <pubDate>Thu, 06 Nov 2025 19:37:13 +0800</pubDate>
        
        <guid>https://pencilfishdaydream.fun/p/pointer-overflow-ctf/</guid>
        <description>&lt;img src="https://pencilfishdaydream.fun/p/pointer-overflow-ctf/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-04-01%20151940.png" alt="Featured image of post pointer overflow ctf" /&gt;&lt;blockquote&gt;
&lt;p&gt;逛ctftime发现一个比赛连着开两个月，没事就打打，做不出来算了。另外，这个比赛的靶场竟然不是需要自己开启的容器，好神奇啊&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&#34;1-all-paths-lead-home&#34;&gt;1. All Paths Lead Home
&lt;/h1&gt;&lt;p&gt;这个签到题挺搞心态的。&lt;/p&gt;
&lt;img src=&#34;1.png&#34; width=&#34;600&#34;&gt;
&lt;p&gt;进来看到一个读取文件的页面，默认的note.txt内容如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Welcome traveler.&lt;/p&gt;
&lt;p&gt;Only text files are available here.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;题目描述提示flag在/secret/下面,直接路径穿越，发现 &lt;code&gt;..&lt;/code&gt;和&lt;code&gt;/&lt;/code&gt;被ban了。&lt;/p&gt;
&lt;p&gt;随便输入点东西给出hint&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This path doesn’t exist. If you’re experimenting with encodings, consult the docs.&lt;/p&gt;
&lt;p&gt;Hint: legacy compatibility is documented at /docs/legacy.html.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;跟进去看看&lt;/p&gt;
&lt;img src=&#34;3.png&#34; width=&#34;600&#34;&gt;
&lt;p&gt;其实知道这个编码这个题就写出来了，就是get传参启动传统模式，然后换编码绕过黑名单，路径穿越读flag。&lt;/p&gt;
&lt;p&gt;具体的绕过就是:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;.&amp;#39; -&amp;gt; +AC4- -&amp;gt; URL Encoded: %2BAC4-
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;/&amp;#39; -&amp;gt; +AC8- -&amp;gt; URL Encoded: %2BAC8-
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;但是我做路径穿越的时候一直都习惯往上爬4，5层，感觉到顶了就都一样，结果一直读不到 /secret/flag.txt ，想了很多方向，试了一堆payload，结果最后
&lt;code&gt;%2BAC4-%2BAC4-%2BAC8-secret%2BAC8-flag%2BAC4-txt&lt;/code&gt;成功了，就 &lt;code&gt;../secret/flag.txt&lt;/code&gt; 往上爬了一层。&lt;/p&gt;
&lt;p&gt;后来ai告诉我说:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;当输入（例如 ../../../../flag）被发送到服务器时，应用程序会先进行“规范化”处理，计算出最终的绝对路径。 许多安全的应用程序会检查这个最终路径是否在允许的Web根目录之内。&lt;/p&gt;
&lt;p&gt;应用程序的安全检查发现路径已经超出了预期的Web目录（例如 /var/www/），会直接拒绝请求。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;HaHa, What can I say&lt;/p&gt;
&lt;img src=&#34;大阪.png&#34; width=&#34;600&#34;&gt;
&lt;h1 id=&#34;2-this-must-be-the-place&#34;&gt;2. This Must Be the Place
&lt;/h1&gt;&lt;p&gt;这个题干说&lt;code&gt;filters are not enough&lt;/code&gt;，我想你要是挡完了我还做什么，然后fuzz了一下发现对很多字符都有反应，想了半天绕过方法结果
&lt;code&gt;&amp;lt;script&amp;gt; alert(1); &amp;lt;/script&amp;gt;&lt;/code&gt;直接成功了，仔细看代码把输入框给转了,我只能说这个出题人挺有活的。&lt;/p&gt;
&lt;img src=&#34;2.png&#34; width=&#34;600&#34;&gt;
&lt;p&gt;然后直接fetch会404，结合hint，在payload中附带上tocken，因为这个tocken是在利用点之后生成的，所以需要&lt;code&gt;setTimeout&lt;/code&gt;等一下。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;小北计算器还在追我tmd 😡&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://pencilfishdaydream.fun/p/pointer-overflow-ctf/sv.png&#34;
	width=&#34;504&#34;
	height=&#34;376&#34;
	srcset=&#34;https://pencilfishdaydream.fun/p/pointer-overflow-ctf/sv_hu_352a9946372b61d8.png 480w, https://pencilfishdaydream.fun/p/pointer-overflow-ctf/sv_hu_460b14746206053f.png 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;134&#34;
		data-flex-basis=&#34;321px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;完整payload:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;script&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;setTimeout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;/flag&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nx&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;X-FLAG-TOKEN&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;window&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;FLAG_TOKEN&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;alert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        
    </channel>
</rss>
