IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> [wirteup] unctf-web-can_you_hacked_me -> 正文阅读

[大数据][wirteup] unctf-web-can_you_hacked_me

?

看到网页界面很容易想到MySQL注入,所以尝试一下常规的注入方法:

username= a' pr 1=1#? ? ?、pass随意?

发现这个题目远不止这么简单,正则表达式过滤了我浅薄知识范畴里可以想到的所有注入姿势。

后来又百度了很多注入方法,一一尝试都不成功。

无奈之下只能用dirsearch尝试搜索后门:

?

?

结果发现了一个www目录(可能是网站根目录?)的zip包?

发现里面有一个index.php文件和一个sql文件

<html>

<head>
    <meta charset="UTF-8">
    <title>Can You Hacked me?</title>
</head>

<body>
<h1>Can You Hacked me?</h1>
<form method="get">
    Username: <input type="text" name="username"> <br>
    Password: <input type="text" name="password"> <br>
    <input type="submit">
</form>

<pre>
<?php
include "flag.php";
error_reporting(0);

function waf1($inject) {
    preg_match("/'|union|select|&|\||and|or|\(|,/i",$inject) && die('return preg_match("/\'|union|select|&|\\||and|or|(|,/i",$inject);');
}

if(isset($_GET['username']) && isset($_GET['password'])) {
    $username = $_GET['username'];
    $password = $_GET['password'];
    
    waf1($username) || waf1($password);
    
    if (strtolower($_GET['username']) == 'admin' && $_SERVER["REMOTE_ADDR"] != '127.0.0.1') {
        die('Admin only allow to login at localhost');
    }
    
    $conn = new mysqli("127.0.0.1","root","root","supersqli");
    
    $sql = "select * from `users` where username = '$username' and password = '$password';";

    $result = $conn->query($sql);
    
    echo $sql . '<br>';
    
    if ($result->num_rows > 0) {
        // 输出数据
        while($row = $result->fetch_assoc()) {
            if($row["username"] === 'admin') {
                echo 'Welcome Admin, here is your flag: ' . $flag;
            } else {
                die("You are not Admin.");
            }
        }
    } else {
        echo "Result Not Found!";
    }
    $conn->close();
}


?>
</pre>

</body>

</html>
CREATE DATABASE IF NOT EXISTS supersqli;

USE supersqli;

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) NOT NULL,
  `username` varchar(20) NOT NULL,
  `password` varchar(20) NOT NULL
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


INSERT INTO `users` values(1,'test', 'test'),(2,'admin','AdminSecret');

发现居然存储了admin的密码,赶快去网站登陆admin,得到提示:

Admin only allow to login at localhost

?并不能登陆admin,而登陆test账号是无法得到flag的。

但是可以尝试上一篇博客(189条消息) MySQL约束攻击的原理和复现_bouIevard的博客-CSDN博客

中所说的MySQL约束攻击的原理,我们直接输入admin不能够登陆,但是可以输入一个超长字符串‘admin? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?’来实现登陆,然后拿到flag。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:06:19  更:2021-12-03 13:07:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:30:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码