Tải bản đầy đủ (.pdf) (14 trang)

Hack Sql Inject nâng cao

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (182.79 KB, 14 trang )

Như vậy chúng ta đã biết cách run command (bạn có thể run file exe ) , biết down, up
file, hầu như đã làm chủ được server rồi đấy . Còn hack nhanh hay chậm, hiệu quả bao
nhiêu là do bạn
( Nếu test thấy lỗi gì xin liên hệ
)
Chúc hack vui
y
vấn SQL:

Hack Sql Inject nâng cao
Các bạn thử xem một câu truy vấn SQL:
select id, forename, surname from authors thì 'id','forename' và 'surname' là column của
table author,khi câu truy vấn trên làm việc thì nó sẽ cho kết quả tất cã các dòng trong
table author.Xem câu truy vấn sau:
select id, forename, surname from authors where forename = 'john' and surname = 'smith'
Đây là câu truy vấn có điều kiện chắc không nói các bạn cũng biết,nó cho ra kết quả tất
cã những ai trong csdl với forename = 'john' and surname = 'smith'

Vì vậy khi vào giá trị đầu vào không đúng như trong csdl liệu:

Forename: jo'hn
Surname: smith

Câu truy vấn trở thành:
select id, forename, surname from authors where forename = 'jo'hn' and surname = 'smith'
Câu truy vấn trên khi được xử lý thì nó sẽ phát sinh lổi:

Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near 'hn'.

Lý do là ta lồng vào dấu nháy đơn "'" và giá trị vào trở thành 'hn' sai so với csdl vậy sẽ


phát sinh lổi lợi dụng cái này attacker có thể xoá dữ liệu của bạn như sau:

Forename: jo'; drop table authors--
Table author sẽ bị xóa ->nguy hiểm phải không

Nhìn vào đoạn code asp sau:đây là một form login

<HTML>
<HEAD>
<TITLE>Login Page</TITLE>
</HEAD>
<BODY bgcolor='000000' text='cccccc'>
<FONT Face='tahoma' color='cccccc'>
<CENTER><H1>Login</H1>
<FORM action='process_login.asp' method=post>
<TABLE>
<TR><TD>Username:</TD><TD><INPUT type=text name=username size=100%

Page 4

width=100></INPUT></TD></TR>
<TR><TD>Password:</TD><TD><INPUT type=password name=password size=100%
width=100></INPUT></TD></TR>
</TABLE>
<INPUT type=submit value='Submit'> <INPUT type=reset value='Reset'>
</FORM>
</FONT>
</BODY>
</HTML>
Đây là code 'process_login.asp'

<HTML>
<BODY bgcolor='000000' text='ffffff'>
<FONT Face='tahoma' color='ffffff'>
<STYLE>
p { font-size=20pt ! important}
font { font-size=20pt ! important}
h1 { font-size=64pt ! important}
</STYLE>
<%@LANGUAGE = JScript %>
<%
function trace( str )
{
if( Request.form("debug") == "true" )
Response.write( str );
}
function Login( cn )
{
var username;
var password;
username = Request.form("username");
password = Request.form("password");
var rso = Server.CreateObject("ADODB.Recordset");
var sql = "select * from users where username = '" + username + "'
and password = '" + password + "'";
trace( "query: " + sql );
rso.open( sql, cn );
if (rso.EOF)
{
rso.close();
%>

<FONT Face='tahoma' color='cc0000'>
<H1>
<BR><BR>
<CENTER>ACCESS DENIED</CENTER>
</H1>
</BODY>
</HTML>
<%
Response.end
return;
}
else
{
Session("username") = "" + rso("username");
%>
<FONT Face='tahoma' color='00cc00'>
<H1>
<CENTER>ACCESS GRANTED<BR>
<BR>
Welcome,
<% Response.write(rso("Username"));
Response.write( "</BODY></HTML>" );
Response.end
}
}
function Main()
{
//Set up connection
var username
var cn = Server.createobject( "ADODB.Connection" );

cn.connectiontimeout = 20;
cn.open( "localserver", "sa", "password" );
username = new String( Request.form("username") );
if( username.length > 0)
{
Login( cn );
}
cn.close();
}
Main();
%>

Đây là câu truy vấn SQL:

var sql = "select * from users where username = '" + username + "'and password = '" +
password + "'";

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×