会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 如何搭建sql注入漏洞的web站点!

如何搭建sql注入漏洞的web站点

时间:2026-10-17 05:15:43 来源:烟消火灭网 作者:热点 阅读:771次

上周帮一个朋友看他公司内网的何搭培训平台,登录框随手输了个单引号,注入站点页面直接抛了500错误,漏洞还带出了MySQL的何搭语法提示。这站基本等于裸奔。注入站点他问我怎么防,漏洞我说你先自己搭一个打一遍,何搭比看十篇文档管用。注入站点下面这套流程,漏洞是何搭我自己折腾过好几遍的搭建方式,全程在本地虚拟机里跑,注入站点别碰公网。漏洞

环境用Docker起,何搭省得配PHP和MySQL配到心态崩。注入站点一条命令拉个LAMP镜像,漏洞或者干脆用vulhub里现成的SQLi靶场。我习惯自己写,因为能控制每一处细节。目录结构就三个文件:db.php负责连接,index.php放登录表单,login.php处理查询。数据库建一张users表,字段id、username、password,塞两条测试数据进去,admin/123456,test/111111。

关键在login.php里那行SQL。很多人写的是$sql = "SELECT * FROM users WHERE username = '$user' AND password = '$pass'";,然后直接mysqli_query。这就对了——漏洞就藏在这。没有预处理,没有转义,用户输入原样拼进语句。你访问index.php,用户名填' OR '1'='1' -- ,密码随便,提交。如果页面跳转到了所谓“后台”,或者至少没报错且返回了用户数据,说明注入成功。

我搭的时候故意把错误回显打开,display_errors = On。为什么?因为真实站点很少给你看报错,但学习阶段你得看清楚数据库在骂什么。比如输入' UNION SELECT 1,2,3 -- ,页面如果显示2和3,你就知道回显位在哪。这一步别跳过,很多人直接上sqlmap,结果连注入点类型都说不清。

还有个细节:magic_quotes_gpc在PHP 5.4之后已经移除,别指望它。addslashes也不靠谱,宽字节注入能绕过。真正要演示漏洞,就用最原始的拼接。我试过在login.php里加一行echo $sql;,把最终语句打印出来,这样你输入什么、拼成什么样,一目了然。比看任何教程都直观。

搭好之后,别急着关。拿sqlmap -u "http://localhost/login.php" --data="username=admin&password=123&submit=1" --dbs跑一遍,看它能不能爆出库名。能跑通,说明你这个靶场合格。跑不通,回去检查是不是POST参数名写错了,或者页面有跳转导致sqlmap跟丢。我见过有人把login.php里的$_POST写成$_GET,结果sqlmap默认按GET发,自然打不中。

最后说一句:这个站只配活在127.0.0.1或者虚拟机NAT网络里。别手贱映射到公网,别用公司服务器。你搭它是为了理解“为什么一个单引号能毁掉整个数据库”,不是为了真去搞谁。我那个朋友后来把预处理语句加上,再测同样的payload,页面只返回“用户名或密码错误”,连数据库版本都摸不到。这才叫修好了。

(责任编辑:探索)

相关内容
  • 区块链漏洞
  • JSAPI开始注册
  • 网络赌博平台网址
  • 形容面对突发情况的快速处置能力
  • 大数据彩票
  • b2b相关网站
  • 2023年中级安全工程师须经培训机构备案吗
  • 病毒检测和网络安全漏洞检测制度
推荐内容
  • owasp下载
  • 电商客户资源怎么找
  • 国外大学网站打不开
  • xss platfrom
  • 系统魔方
  • 泰州中国医药城