靶场第二题,SQL注入
题目
链接:http://59.63.200.79:8004/
解题思路
打开这个链接,我们可以发现是一个新闻门户网站。
这时候试着点击一下新闻动态里面的一条新闻,因为新闻页面的功能往往和数据库有关系,同时发现点开的新闻界面链接是:
http://59.63.200.79:8004/shownews.asp?id=171。本能告诉我,这个可能存在SQL注入漏洞。但是这个题目,使用SQL注入漏洞判别方式(输入单引号)提示有错误。使用order by 10又可以访问,说明数据库有10列。
我也不知道为啥order by就可以访问,但是单引号注入不行。联合注入也不行
猜测可能是有防SQL注入保护,但是网页防护一般只拦截GET、POST传参,因此我们使用cookie构造payload并发送给服务器。使用插件ModHeader。
点+号添加Request headers
添加一个Cookie头,值为id=171,确保已经打勾并访问http://59.63.200.79:8004/shownews.asp
发现可以访问成功,显示正常,那我们直接进行注入(猜测是否有admin这个表,payload中使用+连接,否则会报错)
id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+admin
发现回显位置,2、3、7、8、9
说明admin表存在,接着尝试猜测最常见的管理表字段名Username和Password,我们在2、3、7、8、9中任选两个,分别填入Username和Password。
id=171+union+select+1,username,password,4,5,6,7,8,9,10+from+admin
回显成功,用户名:admin。密码:b9a2a2b5dffb918c
密码很奇怪,是字母+数字的16位组合,很像md5的特征。尝试用md5解密,得到明文:welcome
到这个时候,我们已经拿到了用户名和密码,而且题目提示,网站后台是默认路径,则尝试访问http://59.63.200.79:8004/admin
发现登陆界面
使用用户名、密码登陆,获取flag。注意:一定要把Madheader里面构造的cookie关掉,否则无法访问的。