闲来无事,最近在做CTF题,感觉再不练练手我就废了。
1.本地文件包含+文件上传拿flag
-
地址题目:http://ctf.xjnu.edu.cn:666/
1.png 题目分析:
看到题目,有两种思路:1).利用文件上传拿
webshell
,然后找到flag
; 2).利用文件包含拿webshell
,然后找到flag
。 目标很明确,思路也有,然后实践操作,结果发现文件上传走不通,然后想利用文件包含漏洞可以读文件,经证实的确可以读取到文件,但是要找flag
就比较难了,因为我不知道flag
在哪啊!于是就有另一种想法,利用远程文件包含拿webshell
,后来经读upload.php
源码发现,应该是不能远程文件包含的。那么最后就剩本地文件包含了,正好呢此处可以上传文件,因此先上传一个图片,不过图片内容改为一句话木马,然后包含这个图片,此时图片里面的一句话木马就会被解析执行,这样我们就拿到了webshell
.
具体操作如下,正好回顾下基础知识
- 利用文件包含读本地文件
/etc/passwd
![img_886be12420ad5f5cdea463500408508b.png](https://i-blog.csdnimg.cn/blog_migrate/ee8c3f7f230ccf6ff7206301460d3d35.png)
2.png
- 由于最后知道了
flag
文件名和路径,这里就顺便演示下,如下:
![img_ee15ef94b97a222dc2f430d1a249f2af.png](https://i-blog.csdnimg.cn/blog_migrate/74c3078c15e2180cfd3d750826779ab9.png)
3.png
- 读取
upload.php
文件源码
读取格式
?file=php://filter/read=convert.base64-encode/resource=文件名
![img_d798a02e4f23d818347590c1316d4e64.png](https://i-blog.csdnimg.cn/blog_migrate/7ad6d23cbe1906ce3e582f66c8c1885d.png)
4.png
然后base64解码
![img_f3720657f9668c0ca2796ae66abb6308.png](https://i-blog.csdnimg.cn/blog_migrate/07373a5ae7814a17656be9e7ddb24d87.png)
5.png
此时看到
upload.php
源码,可知文件上传拿webshell是行不通的
- 同样读取
index.php
,如下:
![img_ebbc5a567328b74f23a24d2c20ec1541.png](https://i-blog.csdnimg.cn/blog_migrate/00990c3000f018c8287aaa07ba7cbbe2.png)
6.png
然后base64解码
![img_6159267566f76e7c3f6bc582d1c24da1.png](https://i-blog.csdnimg.cn/blog_migrate/c4e1022354af2cb7597566ccbba98621.png)
7.png
可以看出,此文件包含是对包含文件参数
file
是做了正则匹配过滤的。
解题
- 上传图片
zzqsmile.jpg
,然后抓包写一句话。
![img_6f064b3bba6f258e2dcfb1d45c7154a0.png](https://i-blog.csdnimg.cn/blog_migrate/ff14cf0942c4eee8126a0987821d382f.png)
8.png
- 上传成功!
![img_1427ba19429c629fa2321a502be31055.png](https://i-blog.csdnimg.cn/blog_migrate/b17bfc0c190c40e087c383cef4fa2c9a.png)
9.png
- 然后包含上传的图片
upload/zzqsmile.jpg
,如下:
![img_3177a7b657ad638d57e15d34c014abea.png](https://i-blog.csdnimg.cn/blog_migrate/b2a51a944e1ab882db64b38a3bde1f9c.png)
10.png
- ok!下面就可以用菜刀尝试连接了。
![img_56dd7cecd700c5b4c62023b130db23a8.png](https://i-blog.csdnimg.cn/blog_migrate/5f610b4e21b8d12a3f11ec446ad43f30.png)
11.png
nice! 没毛病!
- 最后就简单了,找
flag
。
![img_ea086e7293d4a0122756322b5604d4e5.png](https://i-blog.csdnimg.cn/blog_migrate/28a76162cef03573b54a25b1f16ca3e5.png)
12.png
flag: flag{pHp_Lfi_t0_Be_Shell!} 之前读文件读的就是这个文件。
2.SQL注入拿flag
![img_bf4acebfb6211d6c3844e7a90eebc2f6.png](https://i-blog.csdnimg.cn/blog_migrate/77de85a93b0afbd4cc8996c86f5a5771.png)
13.png
- 题目分析: 很明显根据提示信息,此题是道SQL注入的题目,可以看下源码,或者直接可以尝试
index.php?id=1
。
![img_076dda1c5cf79fb09c4e8c5bc414cdab.png](https://i-blog.csdnimg.cn/blog_migrate/f9e9bdb4f0682550ba213fdd5853d704.png)
14.png
![img_0a4c3adf91c559e1b53511f326a15a80.png](https://i-blog.csdnimg.cn/blog_migrate/b6c7c1d4a2c670da90fe58e7391b4709.png)
15.png
可以发现,此处可能就是注入点,经确认的确存在注入。
- 下面就是sql注入流程一顿操作,最后得到
flag
。
![img_9db5de0847a1b2a9585c5de679af5d90.png](https://i-blog.csdnimg.cn/blog_migrate/0dfe63e277060f7772c5045866fedc57.png)
16.png
解题完毕!