Linux Labs

  • 启动靶机。
  • 根据题目与ssh有关,并且给出了用户名和密码。使用kail进行渗透。
  • SSH是一种网络协议,用于计算机之间的加密登录。它通常用于Linux系统之间的远程登录、文件传输和其他网络服务。SSH工作原理简单来说是:客户端将连接信息发送给服务器,服务器会检查客户机的身份,一旦身份验证通过,客户机就可以通过命令行界面或其他方式控制和获取服务器的数据。
  • 地址和端口号均已给出,地址为node4.buuoj.cn,端口号为27993。
  • 以root权限打开kail终端。
  • 输入:ssh -p 27993 node4.buuoj.cn,远程登陆服务器。
    • 【注】第一次输入的时候显示ssh: Could not resolve hostname,查了一下是网络的问题。尝试ping别的网站显示域名解析失败,找了很多方法都没有搞定,只知道是kail网络管理器的问题。最后只能重装kail,网络问题解决。(一定要注意kail镜像是否与主机的处理器匹配)
    • 【注】-p:指定远程主机的SSH端口,默认是22,这里修改为27993。
  • 输入:ls,查看当前目录,发现为空。
  • 输入:cd /,切换到根目录。
  • 输入:ls,查看当前目录,发现flag.txt。
  • 输入:cat flag.txt,查看文件,获得flag。

BUU LFI COURSE 1

  • 启动靶机。
  • 对代码进行解析。
  • <?php
    highlight_file(__FILE__); //高亮显示当前文件if(isset($_GET['file'])) { //isset()判断是否存在GET参数file$str = $_GET['file'];include $_GET['file']; //include:包含并运行指定的文件,包含文件发生错误时,程序警告,但会继续执行。
    }
  • 【注】include语句包含来自GET参数file,如果攻击者通过构造恶意语句,将file参数设置为任意文件路径,就可以实现任意文件包含,并且只需要提供要包含文件的路径或文件名,无需指定其类型。PHP会自动判断文件类型并进行解析。例如:/?file=文件路径名/文件名。
  • 随便输入一个文件路径,返回了一些信息。发现当前运行程序的文件路径为/var/www/html/index.php。
  • 看到这个路径名让我想到了linux系统,查看自己的虚拟机,果然是linux系统的文件路径。
  • 尝试是否能返回linux系统中的文件,按照自己虚拟机有的文件,构造/?file=/etc/hosts,成功。
  • 猜想如果有flag文件应该是放在根目录下,尝试构造/?file=/flag.txt(/代表网站根目录),发现没有用。
  • 根据include语句包含文件时无需指定其类型,尝试构造/?file=/flag,得到flag。

BUU BRUTE 1

  • 启动靶机。
  • 尝试弱口令,用户名输入admin,密码输入admin,提示密码为四位数字。说明用户名正确,直接对密码进行爆破。(也可以通过bp爆破用户名,我这纯属运气好)
  • 打开BurpSuite,打开浏览器代理(与BurpSuite设置的一致),用户名输入admin,密码随便输入,点击提交,BurpSuite成功抓包。右键将包发送给intruder。
  • 点击测试器,修改爆破位置。
  • 在有效载荷中设置爆破范围。
  • 设置线程数,加速爆破。
  • 结果发现有两种长度的返回值,分别查看,发现有请求错误,说是请求太多。猜测是短时间爆破的次数太多了,尝试减少每次访问的时间间隔。
  • 经过几次尝试,确定合理的方案是单线程,时间间隔为100毫秒,即1秒钟进行10次尝试,不会导致服务端进行访问拦截。
  • 最后爆破成功,获得flag。

BUU SQL COURSE 1

  • 启动靶场。
  • 点击三个测试新闻都没有发现什么线索。点击登录,看来是需要对用户名和密码进行爆破。
  • 尝试使用弱口令,用户名admin,密码admin进行登录,提示用户名或密码错误,说明没办法单独对用户名或密码进行爆破。那这样就会很麻烦,尝试找找其他的线索。
  • 根据题目,应该是与SQL注入有关,那应该先找到SQL的注入点。
  • 发现点击测试新闻1,2,3其URL中分别对应1,2,3,存在SQL注入的可能。
  • 按F12查看网络,发现一个查询请求,并且返回了对应的字段。
  • 测试该点是否可以进行SQL注入。复制出该请求地址进行单独测试。
  • 具体步骤:
    • 1、判断是否存在SQL注入

      • 1 and 1=1 // 成功返回字段
        1 and 1=2 // 返回字段失败
      • and 1=2恒为假,无返回信息,故存在SQL注入的漏洞。
    • 2、判断字段数
      • 1 order by 1 // 返回信息
        1 order by 2 // 返回信息
        1 order by 3 // 未返回信息
      • 只有1 order by 3未返回信息,说明此表只有两个字段。
      • 【注】在SQL注入中,order by语句用于对查询结果进行排序,从而获取数据库表的列数。
        • 例如,在一个SQL注入漏洞中,我们可以输入:?id=1 order by 3。这条SQL语句的意思是:sql select * from users where id=1 order by 3
        • 这里的order by 3表示按第3列进行排序,当我们提交该语句时,会有两种情况:
          • 查询成功,页面正常显示结果,这表示users表至少有3列。
          • 查询失败,页面显示错误。这表示users表少于3列。
        • 所以,通过尝试不同的order by值(1,2,3...n),我们可以判断出users表的最大列数。
    • 3、确定回显位置
      • id=0 union select 1,2 // 已知该表有两个字段,所以可以使用两个值进行查询
      • 【注】确定注入点输入的数据在页面的哪个位置进行回显,知道了回显位置,我们就可以构造针对性的语句来读取数据。
      • 【注】在SQL注入中,union select语句用于执行联合查询,从而读取数据库数据。
        • 例如,在一个SQL注入漏洞中,我们可以输入:?id=0' union select 1,2。这条SQL语句的意思是:sql select * from users where id=0' union select 1,2
        • 这条语句会先执行id=0'的查询,然后将union select 1,2的结果与之联合,返回所有列的值为1,2的行。
    • 4、查询数据库名
      • ​​​​​​​id=0 union select 1,database() // 返回数据库名
      • ​​​​​​​
    • 5、查询数据库中所有的表
      • // 返回news数据库中的所有表
        ​​​​​​​id=0 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='news') 
      • 【注】select group_concat()是一个MySQL函数,用于将字段的值组合成一个字符串。
    • 6、查看表中的字段
      • // 获得admin表中的字段
        ​​​​​​​id=0 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='news' and table_name='admin')
    • 7、获得字段的值
      • // 获得用户名和密码
        ​​​​​​​id=0 union select (select group_concat(username) from admin),(select group_concat(password) from admin)
  • 使用获得的用户名和密码进行登录,获得flag。

待续。。。

BUUCTF——Basic相关推荐

  1. BUUCTF basic PikaChu AWD-Test1 Webug 4.0

    目录 PikaChu AWD-Test1 Webug 4.0 PikaChu 启动靶机,发现是pikachu的靶场,找到文件上传页面 禁用js (新建页面,输入about:config,搜索javas ...

  2. BUUCTF BASIC and MISC

    Linux Labs 这道题是一道利用ssh连接 找到flag的题 也是了解ssh之后第一次利用到 利用命令 ssh -p 25554 root@node4.buuoj.cn 点击连接之后会显示输入密 ...

  3. BUUCTF basic BUU BURP COURSE 1 LFI Labs

    目录 BUU BURP COURSE 1 LFI Labs BUU BURP COURSE 1 启动靶机,提示只能本地登录,打开burp,刷新一下靶机页面,抓个包 我们需要伪造一个本地ip X-Rea ...

  4. BUUCTF-RSA学习(一)

    一.RSA题目:已知e.p.q计算d 题目(来自BUUCTF RSA) 在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17 求解出d作为flag提交 解题脚本 i ...

  5. XSS-lab通关记录

    本文章为buuctf basic XSS-lab的通关记录,为个人学习记录,仅供参考 在学习xss-lab之前,先了解了一下xss攻击的原理,如下: 简述 人们经常将跨站脚本攻击(Cross Site ...

  6. [buuctf] crypto全解——前84道(不建议直接抄flag)

    buuctf crypto 1.MD5 2.Url编码 3.一眼就解密 4.看我回旋踢 5.摩丝 6.[BJDCTF 2nd]签到-y1ng 7.password 8.变异凯撒 9.Quoted-pr ...

  7. buuctf解题记录

    buuctf解题记录 Basic 1. Linux labs Ssh连接查看目录 2.BUU LFI COURSE 1 打开环境 是一道文件包含题 进行get传参 构造payload: http:// ...

  8. remote: HTTP Basic: Access denied

    github 提交项目 提示 remote: HTTP Basic: Access denied 这个一般就是自己更改github账号的密码引起的 处理方法1 进入控制面板-->用户账号--&g ...

  9. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

最新文章

  1. 美多商城之商品(准备商品数据 )、Dockers容器和FastDFS存储
  2. 如何开始你的CTF比赛之旅
  3. 多个容器一起打包_容器快速入门完全指南
  4. C#学习笔记——通用对话框
  5. ng-option小解
  6. 记一次new Map()
  7. 中根遍历二叉查找树所得序列一定是有序序列_学习数据结构--第六章:查找(查找)
  8. (解决办法)Windows Server 2003安装sp1时说产品密钥无效
  9. WordPress丸子小程序从零到一搭建小程序[小程序配置]
  10. 武林外传之同福奇缘 【安卓游戏】
  11. Android国际化,简体和繁体切换
  12. Minor GC、Young GC、Old GC、Major GC、Mixed GC、Full GC都是什么?
  13. 99条为人处事经典法则剩下的一条由你自己来感悟
  14. vfp报表纸张设置_vfp9终结一直以来的打印纸张设置
  15. 美国总统拜登下令降半旗悼念枪击案遇难者
  16. [ffmpeg]ffmpeg yasm not found, use --disable-yasm for a crippled build
  17. 怎么辨别nike真假
  18. 大学计算机专业毕业之后,从事人工智能或大数据,继续考研还是参加工作?
  19. 考研阅卷大揭秘!这些“内幕”你知道吗?
  20. IT技术培训趋势 2020 和2021 最受欢迎的是数字运营和人工智能

热门文章

  1. weixin小助手 有什么功能?
  2. DNSmasq – 配置DNS和DHCP
  3. hybris学习笔记:New Extension
  4. 有哪些好用的国产蓝牙耳机?盘点几款优秀的国产蓝牙耳机
  5. 红星美凯龙阵痛:“挥刀“降杠杆、净利率腰斩
  6. 春水初生,春林初盛,春风十里,不如你
  7. 移动搜索被重新“洗牌”,有那么容易吗?
  8. 华为p6+android4.4,华为p6 4.4系统root教程与方法
  9. php连接impala,Impala ODBC/JDBC性能不佳 - 与NN相比,远程服务器的行提取速度很慢
  10. 树莓派小车实现目标追踪(coco数据集,gluoncv,树莓派和PC信息交互)