B-4:SQL注入测试(PL)
任务环境说明:
服务器场景:Server2012
服务器场景操作系统:未知(关闭链接)
1.已知靶机存在网站系统,使用Nmap工具扫描靶机端口,并将网站服务的端口号作为Flag(形式:Flag字符串)值提交。
nmap -sV IP 进行端口扫描
flag:{8089}
2.访问网站/admin/pinglun.asp页面,此页面存在SQL注入漏洞,使用排序语句进行列数猜测,将语句作为Flag(形式:URL无空格)值提交。
访问后看到一个类似于留言板的界面,不过此处的信息只有管理回复的部分可以填写
到了这里,我也没有什么头绪,想到这题是注入那试着从id开始下手,我们先对id进行查看测试,看下能不能有查询到数据并返回,我本没对id输入抱有什么希望,于是我就随手输了个id=100没想到,真的有东西返回,77,100-113这些id都是有东西返回的
既然id有数据,那么我们就利用这个id里面的数据对列进行猜测,接下来我们使用order by进行注入测试
这里我们知道flag为(order by)不急着提交先,我们继续对他的列进行注入查询,一直查询到第12列时发现,页面里面没有任何东西了,那么我们就知道他一共有多少列
flag:{order by}
3.页面没有返回任何有用信息,尝试使用联合查询进行SQL注入,构建基本查询语句进行SQL注入,将语句作为Flag(形式:语句无空格)值提交。
接下来我们就可以构造联合查询的语句:id=100? union select 1,2,3,4,5,6,7,8,9,10,11 from shopxp_admin,这里题目说没有空格,所以我们换成;号
flag:{union;select}
4.使用联合查询进行列数猜测,构建常规的联合查询列数猜测语句,将出现在文本框里4个字段的序号作为Flag值(形式:F1.F2.F3.F4)提交。
直接把上面的值提交进去
flag:{3.5.6.10}
5.构建注入语句,查询数据库中管理员的敏感信息,将获取到密码信息作为Flag值(形式:Flag字符串)提交。
这里我们修改联合查询语句:id=100? union select 1,2,admin,4,password,6,7,8,9,10,11 from shopxp_admin,因为这里是md5加密的,所以到这里就结束了,只要知道大概是什么思路就OK了
flag:{admin}