查看: 3572|回复: 6

请问下这个怎么绕过登陆进行sql注入

[复制链接]
发表于 2014-8-29 11:42:03 | 显示全部楼层 |阅读模式
悬赏5i币未解决
请问下这个怎么绕过登陆进行sql注入。
应该如何构造sql语句呀 ?
大神教教,感激不尽


[HTML] 查看源码 复制代码
<!--#include file="conn.asp"-->
<%
dim user,pass
username=request.form("username")
pass=request.form("password")
 
 
session.Timeout=60
 
'判断用户名和密码是否正确
set rs=server.createobject("ADODB.Recordset")
sql="select * from admin where username='"&username&"'"
rs.open sql,conn,1,3
if rs.eof then
    Response.Write "<script language='javascript'>alert('\用户名输入有误!');</script>"
    Response.Write "<script language='javascript'>history.go(-1);</script>"
    Response.End()
else
    if rs("username")=username and rs("password")=pass  then
    session("pass")=trim(rs("password"))
    response.redirect "order.asp"
    Response.End()
    else
    Response.Write "<script language='javascript'>alert('\密码输入有误!');</script>"
    Response.Write "<script language='javascript'>history.go(-1);</script>"
    Response.End()
    end if
end if
 
 
%>

回复

使用道具 举报

发表于 2014-9-22 05:02:17 | 显示全部楼层
看不懂!!!
回复

使用道具 举报

发表于 2014-11-14 18:28:27 | 显示全部楼层
同求大神解释
回复

使用道具 举报

发表于 2014-11-22 08:46:14 | 显示全部楼层
我也看不懂
回复

使用道具 举报

发表于 2014-11-23 17:43:23 | 显示全部楼层
看看行不行:
[AppleScript] 查看源码 复制代码
admin' AND '1'='1' '

我只懂mysql,不知道这样行不行
回复

使用道具 举报

发表于 2014-11-25 10:49:23 来自手机 | 显示全部楼层
楼主我只看懂了一部分,开头的<%
dim user,pass
username=request.form("username")
pass=request.form("password")意思是网页以post方式提交,sql="select * from admin where username='"&username&"'"
rs.open sql,conn,1,3这句是设置了过滤变量,下面这句if rs("username")=username and rs("password")=pass  then
    session("pass")=trim(rs("password"))
    response.redirect "order.asp"大概就是验证登陆的,这句有点不懂。
回复

使用道具 举报

发表于 2014-11-30 22:10:19 | 显示全部楼层
仔细看了一下逻辑,直接登录应该是不行,不过可以注射。
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层

Re: 请问下这个怎么绕过登陆进行sql注入

这段代码确实存在典型的SQL注入漏洞,用户名参数直接拼接到查询语句中,而密码没有参与SQL查询,只是在ASP层面与数据库结果比较。要绕过登录,核心思路是让SQL查询返回一条你完全可控的记录,从而通过密码验证。 你可以试试用 `union select` 构造一条自定义记录。先猜测原 `admin` 表的字段数(通常至少包含 username 和 password),然后用 `order by N` 测试。假设字段数是3,在用户名输入: ``` ' union select '任意用户名','自定义密码',null from admin where '1'='1' -- ``` 密码则输入你自定义的那个密码。注意最后的 `--` 注释掉原本 SQL 语句的后半部分,保证语法正确。如果字段数不对,可以调整 `null` 的数量,或改用数字 `1` 测试。 另外,也可以直接尝试盲注,不过为了快速登录,union 注入是最直接的。 **提醒:** 这类测试请务必在你自己拥有授权的环境中进行,不要用于非法入侵。感谢提问,希望这个思路能帮到你。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-5-24 10:48 , Processed in 0.022573 second(s), 15 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部