๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Welcome.
:: Cyber Security ๐Ÿšฉ/Web

[Secure]_#02_[ ํฌ๋งท์ŠคํŠธ๋ง, LDAP ์ธ์ ์…˜, SQL-injection, blind sql injection, OR 1=1, ํ•„ํ„ฐ๋ง, ๋ฐ”์ธ๋”ฉ, PreparedStatement ]

by EunBird 2021. 9. 5.

<ํฌ๋งท ์ŠคํŠธ๋ง>

  • ์ ๊ฒ€ ๋‚ด์šฉ : ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌ๋งท ์ŠคํŠธ๋ง ์ทจ์•ฝ์  ์กด์žฌ ์—ฌ๋ถ€ ์ ๊ฒ€
  • ์ ๊ฒ€ ๋ชฉ์  : ๊ณต๊ฒฉ์ž์˜ ํฌ๋งท ์ŠคํŠธ๋ง ์ทจ์•ฝ์ ์„ ํ†ตํ•œ ์•…์˜์ ์ธ ํ–‰์œ„๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•จ.
  • ๋ณด์•ˆ ์œ„ํ˜‘ : C์–ธ์–ด๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ค‘ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ, ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ์กฐ์ž‘ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์•„ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ณ€์กฐํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Œ.

** ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ -> ์„œ๋ฒ„ ์ทจ์•ฝ์ 

** ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด error๊ฐ€ ๋œจ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ตญ <๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ>์™€ ๋˜‘๊ฐ™๋‹ค.

 

  • ๋Œ€์ƒ : ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค์ฝ”๋“œ, ์›น ๊ธฐ๋ฐ˜ C/S ํ”„๋กœ๊ทธ๋žจ.

** C/S ํ”„๋กœ๊ทธ๋žจ : ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ(๋„์‚ฌ๊ด€ ์ž๋ฆฌ ์˜ˆ์•ฝ ์•ฑ, ์‹๋‹น ํ‚ค์˜ค์Šคํฌ) -> ์—„๋ฐ€ํžˆ๋Š” ์›น ์ทจ์•ฝ์  ๋ถ„์„์ด๋ผ๊ณค ํ•  ์ˆ˜ ์—†๋‹ค.

 

 



<LDAP ์ธ์ ์…˜>

  • // ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ ๊ตฌ์กฐ(ex. ์กฐ์ง์ฒด๊ณ„๋„) - ์ทจ์•ฝํ•˜์ง€๋งŒ ์ธ์›๊ด€๋ฆฌ์— ์šฉ์ดํ•ด์„œ LDAP๋ฅผ ์‚ฌ์šฉํ•˜๊ณค ํ•œ๋‹ค.
  • ์ ๊ฒ€ ๋‚ด์šฉ : ์›น ํŽ˜์ด์ง€ ๋‚ด LDAP ์ธ์ ์…˜ ์ทจ์•ฝ์  ์ ๊ฒ€
  • ์ ๊ฒ€ ๋ชฉ์  : ์ทจ์•ฝํ•œ ์‹œ์Šคํ…œ์— ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” LDAP ์ฝ”๋“œ ์‚ฝ์ž… ๊ณต๊ฒฉ์„ ํ†ตํ•œ ๋น„์ธ๊ฐ€์ž์˜ ์•…์˜์ ์ธ ํ–‰์œ„๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•จ.

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

ex)  "(์ฟผํ„ฐ)๋ฅผ ํ†ตํ•ด ์˜ˆ์‹œ๋ฅผ ๋ณด์ด๊ฒ ๋‹ค.

 

1. ๋‹ค์Œ ์ฒ˜๋Ÿผ ์ฟผ๋ฆฌ๋ฌธ์ด ์žˆ๋‹ค. 

 

~~~์ฟผ๋ฆฌ๋ฌธ~~~ "์ด๋ฆ„" ~~~         

 

 

2. ์ฟผํ„ฐ๋ฅผ ํ•˜๋‚˜ ๋„ฃ์œผ๋ฉด ๋ณ€์ˆ˜๋กœ ๋ฌถ๋Š” ์ฟผํ„ฐ๊ฐ€ ํ•œ์Œ์ด ์ด๋ฆ„ ์•ž์—์„œ ๋งˆ๋ฌด๋ฆฌ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

(SQL-injection)

~~~์ฟผ๋ฆฌ๋ฌธ~~~ ""์ด๋ฆ„" ~~~

 

3. ํ˜น์€ ๋‹ค์Œ ์ฒ˜๋Ÿผ ์ฟผํ„ฐ๋ฅผ 2๊ฐœ ๋„ฃ์œผ๋ฉด ๋‘์Œ์˜ ์ฟผํ„ฐ์Œ ์‚ฌ์ด์— ๊ณต๊ฐ„์ด ์ƒ๊ฒจ์„œ ๊ทธ ๊ณต๊ฐ„์— ๋งˆ์Œ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ์ƒ๊ธด๋‹ค.

 

~~~์ฟผ๋ฆฌ๋ฌธ~~~ ""   [๋งˆ์Œ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„]    "" ~~~

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

 

  • ๋ณด์•ˆ ์„ค์ • ๋ฐฉ๋ฒ• : ํŠน์ˆ˜ ๊ธฐํ˜ธ๋ฅผ ํ†ตํ•œ injection์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
    • '      ์‹ฑ๊ธ€ ์ฟผํ„ฐ
    • "      ๋”๋ธ” ์ฟผํ„ฐ
    • --     ์ฃผ์„
    • #     ๋™์  ์ฟผ๋ฆฌ
    • (
    • )
    • =
    • /*
    • */
    • +
    • <
    • >
    • *
    • ;
    • &
    • |

 



<SQL injection>

  • ** ์ „์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒ.
  • ์ ๊ฒ€ ๋‚ด์šฉ : ์›นํŽ˜์ด์ง€ ๋‚ด SQL ์ธ์ ์…˜ ์ทจ์•ฝ์  ์กด์žฌ ์—ฌ๋ถ€ ์ ๊ฒ€
  • ์ ๊ฒ€ ๋ชฉ์  : ๋Œ€ํ™”ํ˜• ์›น ์‚ฌ์ดํŠธ์— ๋น„์ •์ƒ์ ์ธ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ’ ํ—ˆ์šฉ์„ ์ฐจ๋‹จํ•˜์—ฌ ์•…์˜์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๋ฐ ์กฐ์ž‘์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•จ. 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

 

ex)

์–ด๋–ค ์‚ฌ์ดํŠธ์—์„œ ๊ณ„์ •์„ ์ƒ์„ฑํ•  ๋•Œ, ๋ช‡๊ฐ€์ง€ ํŠน์ˆ˜๊ธฐํ˜ธ๋“ค์„ ๋ชป์“ฐ๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ณธ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.

-> SQL-injection ๋•Œ๋ฌธ์— ํ•ด๋‹น ํŠน์ˆ˜๊ธฐํ˜ธ๋“ค์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•œ ๊ฒƒ์ด๋‹ค.

 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

  • SQL-injection์„ ์‹œ๋„ํ•  ๋•Œ, ๊ฐ€์žฅ ๋จผ์ € ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰๋˜๋Š” ์œ„์น˜๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค.
    • ์ฆ‰, ๋ช‡๊ฐ€์ง€ ํŠน์ˆ˜๊ธฐํ˜ธ๋ฅผ ๋„ฃ์–ด๋ณด๊ณ  ์˜ค๋ฅ˜๋ฌธ์ด ์ถœ๋ ฅ๋˜๋ฉด SQL๋กœ ์ธ์‹๋œ ๊ฒƒ์ด๊ณ , ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰๋˜๊ณ  ์žˆ์Œ์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.
  • ์‹ฑ๊ธ€์ฟผํ„ฐ์ž…๋ ฅ์œผ๋กœ(ํŠน์ˆ˜๊ธฐํ˜ธ ์ž…๋ ฅ์œผ๋กœ) ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๊ฐ€ ๋œจ๋ฉด -> SQL-injection์„ฑ๊ณต
  • ์‹ฑ๊ธ€์ฟผํ„ฐ์ž…๋ ฅ์œผ๋กœ(ํŠน์ˆ˜๊ธฐํ˜ธ ์ž…๋ ฅ์œผ๋กœ) ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๊ฐ€ ๋œจ์ง€ ์•Š์œผ๋ฉด -> Blind SQL-injection.(๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ค๋ฅ˜๋ฌธ์ด ์•ˆ๋œจ๊ฒŒ ์„ค์ •ํ•ด๋‘์—ˆ์„ ๋ฟ, SQL๋กœ ์ธ์‹์€ ๋œ ๊ฒƒ.)

 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

 

OR 1=1     ์„ ์“ฐ๋Š” ๊ฒฝ์šฐ -> ID๋ณด๋‹ค๋Š” PW์— ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

์™œ๋ƒํ•˜๋ฉด ID์— OR 1=1๋ฅผ ์“ฐ๊ณ  ์ ‘์†ํ•˜๋Š” ๊ฒฝ์šฐ, ์–ด๋–ค ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

์ฆ‰, ๊ทธ๋ณด๋‹ค๋Š” ํŠน์ • ID๋ฅผ ์•Œ์•„๋‚ธ ํ›„, PW์— OR 1=1 ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ ‘์†ํ•˜๋ฉด ํ•ด๋‹น ID๋กœ ์ ‘์†์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

*๋กœ๊ทธ์ธ์€ ์ฐธ,๊ฑฐ์ง“์„ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— OR 1=1  ์„ url์—๋‹ค๊ฐ€ ๋„ฃ๋Š” ๊ฒƒ์€ ๋ฐ”๋ณด์ง“์ด๋‹ค.^^.

-> url์—๋‹ค๊ฐ€๋Š” ์ฟผํ„ฐ์™€ ๊ฐ™์€ ํŠน์ˆ˜๊ธฐํ˜ธ ์ž…๋ ฅ์„ ํ†ตํ•ด SQL๋กœ ์ธ์‹๋˜์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

๊ด€๋ฆฌ์ž ID๋Š” ์‚ฌ์ดํŠธ ๋งจ ํ•˜๋‹จ์— ๊ธฐ์žฌ๋œ ์ด๋ฉ”์ผ ์ฃผ์†Œ์™€ ๋น„์Šทํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

 

 


์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” SQL-injection ํ•ด๊ฒฐ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค. 

๋จผ์ €, ASP.net์˜ ๊ฒฝ์šฐ์ด๋‹ค. 

ASP.net

๋ฐฉ๋ฒ•1. ํŠน์ • ํ•„ํ„ฐ๋ง ์ ์šฉ

private string SafeSqlLiteral(string inputSQL)
{
Str = inputSQL.Replace("'","''");  //์™ผ์ชฝ ํฐ ๋”ฐ์Œํ‘œ์•ˆ์˜ ๋ฌธ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ ํฐ ๋”ฐ์Œํ‘œ์•ˆ์˜ ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•œ๋‹ค.
Str = str. Replace(";","");        // ์ฆ‰, ์—†์•ค๋‹ค.
Str = str. Replace("--","");
Str = str. Replace("|","");
Str = str. Replace(":","");
Str = str. Replace("+","");
Str = str. Replace("\","");
Str = str. Replace("/","");
.....
return str;
}

๊ทธ๋Ÿฌ๋‚˜, ๋ฌผ๋ก  ํ•„ํ„ฐ๋ง์„ ํ†ตํ•ด์„œ๋„ SQL-injection์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ”์ธ๋”ฉ์ด๋ผ๋Š” ๊ฒƒ๋งŒ ํ•ด์ฃผ๋ฉด ํ•„ํ„ฐ๋ง์€ ํ•„์š”์—†๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐฉ๋ฒ•2. ๋ฐ”์ธ๋”ฉ 

Dynamic SQL

----------

Private void cmdLogin_Click(object sender, System.EventArgs e) {
string strCnx = ConfigurationSettings.AppSettings[“cnxNWindBad”];
Using (SqlConnection cnx = new SqlConnection(strCnx))
{
SqlParameter prm;
Cnx.Open();
string strQry =
“SELECT Count(*) FROM Users WHERE UserName = @username “ +  --์—ฌ๊ธฐ์˜ 3์ค„๋ณด๋‹ค, ์•„๋ž˜์˜ ๋ฐ”์ธ๋”ฉ์ด ์ค‘์š”ํ•˜๋‹ค.
“AND Password = @password”;
Int intRecs;
SqlCommand cmd = new SqlCommand(strQry, cnx);
cmd.CommandType = CommandType.Text;
prm = new SqlParameter(“@username”,SqlDbType.VarChar,50);   --๋ฌธ์ž์—ด๋กœ  username์„ ๋ฐ›๊ณ ์žˆ์Œ. -> ๋ฐ”์ธ๋”ฉ
prm.Direction = ParameterDirection.Input;
prm.Value = txtUser.Text;
cmd.Parameters.Add(prm);
prm = new SqlParameter(“@password”,SqlDbType.VarChar,50);   --๋ฌธ์ž์—ด๋กœ  password์„ ๋ฐ›๊ณ ์žˆ์Œ. -> ๋ฐ”์ธ๋”ฉ
prm.Direction = ParameterDirection.Input;
prm.Value = txtPassword.Text;
cmd.Parameters.Add(prm);
intRecs = (int) cmd.ExecuteScalar();
if(intRecs > 0) {
FormsAuthentication.RedirectFromLoginPage(txtUser.Text, false);
}
else {
lblMsg.Text = “Login attempt failed.”;
}
}
}

----------

 


JSP.net

 

๋ฐฉ๋ฒ•1. ํ•„ํ„ฐ๋ง

ํ•„ํ„ฐ๋ง๋„ ์‚ญ์ œ ํ•„ํ„ฐ๋ง๊ณผ ์น˜ํ™˜ ํ•„ํ„ฐ๋ง์ด ์žˆ๋‹ค.

 

public static String makeQuery(String str) {
String result = "";
if(str != null) {
result = chkNull(replace(str, "'", ""));    // ์™ผ์ชฝ ํฐ ๋”ฐ์Œํ‘œ์•ˆ์˜ ๋ฌธ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ ํฐ ๋”ฐ์Œํ‘œ์•ˆ์˜ ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•œ๋‹ค.
result = chkNull(replace(str, ";", ""));    // ์—ฌ๊ธฐ์„œ๋Š” ๋ชจ๋‘ ์‚ญ์ œ ํ•„ํ„ฐ๋ง์„ ์‚ฌ์šฉํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
result = chkNull(replace(str, "--", ""));
result = chkNull(replace(str, "|", ""));
result = chkNull(replace(str, ":", ""));
result = chkNull(replace(str, "+", ""));
result = chkNull(replace(str, "\", ""));
result = chkNull(replace(str, "/", ""));
result = chkNull(replace(str.toLowerCase(), "select", ""));
result = chkNull(replace(str.toLowerCase(), "update", ""));
result = chkNull(replace(str.toLowerCase(), "delete", ""));
result = chkNull(replace(str.toLowerCase(), "insert", ""));
result = chkNull(replace(str.toLowerCase(), "where", ""));
result = chkNull(replace(str.toLowerCase(), "from", ""));
result = "'"+result+"'";
}
return result;
}
public static String chkNull(String str) {
if (str == null)
return "";
else
return str;
}

 

**์‚ญ์ œ ํ•„ํ„ฐ๋ง ์ฃผ์˜์  **

--> ์–ด๋– ํ•œ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์‚ญ์ œ๋˜๋Š”๋ฐ, ์ด๋•Œ ์•ž๋’ค์˜ ์ฟผ๋ฆฌ๋ฌธ์ด ๋ถ™์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋ฐฉ๋ฒ•2. PreparedStatement ๊ฐ์ฒด ์‚ฌ์šฉ (PreparedStatement : jsp์—์„œ injection์„ ๋ง‰๊ธฐ์œ„ํ•ด ์“ธ ์ˆ˜ ์žˆ์Œ.)

----------

try{
String tableName = props.getProperty("jdbc.tableName");
String name = props.getProperty("jdbc.name")
String qury = "SELECT * FROM ? WHERE Name = ?";
stmt = con.perpareStatement(query);   --์œ— ๋ฌธ์žฅ ์‹คํ–‰ ๋ช…๋ น.
stmt.setString(1, tableName);      -- injection ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„! --> ๋ฐ”์ธ๋”ฉ
stmt.setString(2, name);      -- injection ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„! --> ๋ฐ”์ธ๋”ฉ
rs = stmt.executeQuery();
.....
}
catch (SQLException sqle){ }
finally { }

----------

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ, ์‚ฌ์‹ค ๋จผ์ € setstring์œผ๋กœ ๋ฐ”์ธ๋”ฉ์„ ํ•ด์ค€ ํ›„, preparedstatement๊ฐ€ ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ statement๋ฅผ ์‚ฌ์šฉํ•ด๋„ injection์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.

 


* Dynamic SQL ๊ตฌ๋ฌธ ์‚ฌ์šฉ ๊ธˆ์ง€ --> ์‚ฌ์‹ค ํ•„ํ„ฐ๋ง์ด๋‚˜ ๋ฐ”์ธ๋”ฉ๋งŒ ์ž˜ํ•˜๋ฉด ์‚ฌ์šฉํ•ด๋„ ๋จ.

 

* XML๋ฌธ์„œ์—์„œ ์ฃผ๋กœ ๋™์ ๋ฌธ์„œ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค. 

 

** PC์—์„œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ๋จผ์ € html, jsp์„ ๋จผ์ € ์ง€๋‚˜๊ฐ€๊ณ  XML๋ฌธ์„œ๋กœ ๊ฐ€๋Š”๋ฐ,

html ํ˜น์€ jsp์—์„œ ํ•„ํ„ฐ๋ง์ด๋‚˜ ๋ฐ”์ธ๋”ฉ์„ ์ž˜๋งŒ ํ•ด์ค€๋‹ค๋ฉด XML๋ฌธ์„œ์—์„œ๋Š” $(๋™์ ), #(์ •์ ) ์ค‘ ์–ด๋Š๊ฒƒ์ด๋“  ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 


 

 

728x90

':: Cyber Security ๐Ÿšฉ > Web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Secure]_#04_[XSS, stored, reflected, ํ•„ํ„ฐ๋ง, ์„ธ์…˜ ํ•˜์ด์žฌํ‚น, CSRF, ์ž…๋ ฅ๋ง‰๊ธฐ, ์ถœ๋ ฅ๋ง‰๊ธฐ, ์•ฝํ•œ ๋ฌธ์ž์—ด ๊ฐ•๋„, ๋ถˆ์ถฉ๋ถ„ํ•œ ์ธ์ฆ, ์ทจ์•ฝํ•œ ํŒจ์Šค์›Œ๋“œ ๋ณต๊ตฌ, ์„ธ์…˜ ์˜ˆ์ธก, ์„ธ์…˜/์ฟ ํ‚ค, hash]  (0) 2021.09.13
[Secure]_#03_shot2_[ ํฌ๋กœ์Šค์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŠธ ์™„์„ฑ ์š”์†Œ, "><marquee onstart = confirm(cookie)>test</marquee>]  (0) 2021.09.11
[Secure]_#03_shot1_[ ์„œ๋ฒ„์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…, <scscriptript>alert('๊ฒฝ๊ณ ')</scsccriptript>]  (0) 2021.09.11
[Secure]_03_[SSI Injection, ๋””๋ ‰ํ„ฐ๋ฆฌ ์ธ๋ฑ์‹ฑ, ์ •๋ณด ๋ˆ„์ถœ, ํ‰๋ฌธ ๋…ธ์ถœ, ๋งˆ์Šคํ‚น ์ •๋ณด ์†Œ์Šค์— ํ‰๋ฌธ ๋…ธ์ถœ, ์ธ์ฝ”๋”ฉ, ์•”ํ˜ธํ™”, ํ†ตํ•ฉ ์—๋Ÿฌ ์„ค์ •, robot.txt, User-agent : * , ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…]  (0) 2021.09.11
[Secure]_#01_[๊ณ ์œ ์‹๋ณ„๋ฒˆํ˜ธ, ๊ฐœ์ธ์ •๋ณด, ์›น์ทจ์•ฝ์  ์ง„๋‹จ, OWASP TOP 10, ์ฃผ์š”ํ†ต์‹  ๊ธฐ๋ฐ˜์‹œ์„ค ์ทจ์•ฝ์  ์ง„๋‹จ ๊ฐ€์ด๋“œ, ๋ฒ„ํผ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ]  (0) 2021.09.05

๋Œ“๊ธ€