CWE-352
ypKChz

CWE-352

Compound Element ID:352(Compound Element Variant: Composite)

Status: Draft

NXTCgNGXgtH[WF

v

{Ǝ㐫݂ Web AvP[V́AtH[}bgɉAÓňѐ̂郊NGXgAM[ÜӐ}ʂɓnꂽ̂\Ɍ؂ȂA邢͌؂s”\łB

ڍׂȉ

Web T[oNGXg؂Ɏ󂯎悤݌vĂꍇAU҂NCAgxAӐ}ȂNGXg Web T[oɑM”\܂B̏ꍇAWeb T[o͂̃NGXg𐳋K̂̂ƂĎ舵܂B
̍UURLA摜̓ǂݍ݁AXMLHttpRequest čsAf[^̘RӐ}ȂR[h̎s”\܂B

ʖ

ZbVCfBO
NXTCgt@XtH[WF
XSRF

_Iȕ⑫

CSRF̃g|W[́ǍoHɓn܂B

1. U҂A郆[Uɑ΂āB͊ǑoHɂčp܂B
2. 郆[UA]ƂȂT[oɑ΂āB̌oHɂčp܂B

Ǝ㐫̔

A[LeN`ѐ݌v

YvbgtH[

Ɉˑ

WebT[o

ʓIȉe

 

e󂯂͈ e
@
S
—p
ZpICpNgF̎擾Ȃ肷܂Ah䃁JjỶAAvP[Vf[^̓ǂݎ

d含 CSRF ̐Ǝ㐫݂@\̐ɂĕς܂BU҂͎AQ҂Ɠ悤ɑsƂ”\łBQ҂Ǘ҂邢͌̂郆[Uꍇɂ́Aweb AvP[V̊SȃRg[(f[^̍폜ގAĩACXg[␻ȋSẴ[Uɑ΂ŮՂƂĂ̗p)^邱ƂɂȂ܂BU҂͔Q҂̎ʂĂ邽߁ACSRF ̋yԔ͈͔͂Q҂̎Œɐ܂B

 

U󂯂”\

`

oi


{Ǝ㐫̓ylg[VeXgAЃfyю҂ANeBuZbVύXAL^łC^NeBuȃc[̂悤ȁA蓮́ilɂj͂KvƂZpƃc[ɂČo”\łB

̓Iɂ́A蓮ɂ镪͖͂{Ǝ㐫̔ɗLłArWlXWbN𗝉Ă΃tH[X|WeBuŏ܂BAԓIȐ̒ŃR[hSĂ𕪐͂邱Ƃ͕s”\ł傤BubN{bNX͂ɂēAJEg̏񂪂ȂꍇAAvP[VɂăZLeBłdvȕւ̔z\ł͂Ȃ”\܂B

ݓIȖ肵A蓮͂ɖ𗧂 OWASP CSRFTester ̗p܂B

LF
蓮͂͊SɎꂽiʓIłBƎ㐫݌vyуrWlX[Ɋ֌WꍇɓɗLłB

ÓI
݂̂ƂACSRF ͎͂gpĂmɖhƂ͍łB́AeAvP[VꂼAỎe󂯂郊NGXgtÖق̃ZLeB|V[Ă邱ƁAyу[U쐬悤Ƃ郊NGXgɑ΂鍂Mv郊NGXgɑ΂āA[ȖɎsĂ邱ƂłBႦ΁Aweb TCǧJɂL[[h́AʓIɃ[UNNbNƂɎIɎs郊NŃGR[h邱Ƃ҂Ă܂B

LFI

ƎȃR[h

 1:

 

PHP ̃R[h́A[U̓eK؂ȃZbVĂ邱ƂmF邱ƂɂAtH[̓eSɂ悤Ƃ̂łBAU҂͓K؂ȃZbVłɕێĂ郆[U web uEŨNGXgU邽߁ACSRF U͂̑΍ł͖hƂł܂B ȉ HTML ̓[UɃvtB[̃Abvf[gs킹邽߂̂̂łB

Example Language: HTML (Bad Code)
<form action="/url/profile.php" method="post">
<input type="text" name="firstname"/>
<input type="text" name="lastname"/>
<br/>
<input type="text" name="email"/>
<input type="submit" name="submit" value="Update"/>
</form>

profile.php ɂ́Aȉ̃R[h܂܂Ă܂B

Example Language: PHP (Bad Code)
// initiate the session in order to validate sessions

session_start();

//if the session is registered to a valid user then allow update

if (! session_is_registered("username")) {

echo "invalid session detected!";

// Redirect user to login page
[...]

exit;
}

// The user session is valid, so process the request
// and update the information

update_profile();

function update_profile {
// read in the data from $POST and send an update
// to the database
SendUpdateToDatabase($_SESSION['username'], $_POST['email']);
[...]
echo "Your profile has been successfully updated.";
}

ꌩAK؂ȃZbVmFĂ邽߂̃R[h͕ی삳Ă悤Ɍ܂BACSRF U͎IɁAimage ^OANAߍ݂ object ^O ܂́AwiC[WĂяȏ̑܂߂ĂA^O HTML \s”\łB

U҂́AWI web AvP[VɃOCĂԂɃy[WKꂽ郆[Ũ[U⃁[AhXύXR[ĥ΂邱Ƃ”\łB̃R[h͈ȉ̂悤ɖQ web y[WɌ܂B

 

 

Q ڍ
CVE-2004-1703 Add user accounts via a URL in an img tag
CVE-2004-1995 Add user accounts via a URL in an img tag
CVE-2004-1967 Arbitrary code execution by specifying the code in a crafted img tag or URL
CVE-2004-1842 Gain administrative privileges via a URL in an img tag
CVE-2005-1947 Delete a victim's information via a URL or an img tag
CVE-2005-2059 Change another users settings via a URL or an img tag
CVE-2005-1674 Perform actions as administrator via a URL or an img tag
CVE-2009-3520 modify password for the administrator
CVE-2009-3022 CMS allows modification of configuration via CSRF attack against the administrator
CVE-2009-3759 web interface allows password changes or stopping a virtual machine via CSRF

 

Q̊ɘa

tF[YFA[LeN`ѐ݌v

헪F CuAt[[N
{Ǝ㐫̔hA邢͖{Ǝ㐫₷\񋟂A\ɌꂽCut[[NgpĂB
ƂāAOWASP CSRFGuard ȂǂCSRF΍pbP[W܂B
̗ƂẮACSRF ɑ΂R|[lg  ESAPI Session Management control ܂B

tF[YF

 CSRF ΍͍U҂̃XNvgɂ邽߁AAvP[VɃNXTCgXNveBO̖ (CWE-79) ƂmFĉB

tF[YFA[LeN`ѐ݌v

ӂ̗tH[ɐAZbgAtH[󂯎闐؂ĂB
̗͐Ȃ̂ɂĉ (CWE-330).B
̊ɘa̓NXTCgXNveBOiCWE-79jɂ”\ł邱ƂɒӂĂB

tF[YFA[LeN`ѐ݌v

Ɋ댯ȏ肵ĂB[U댯ȏsꍇA[ȔӐ}Ă邩mF•ʂ̊mFNGXg𑗐MĂB
̊ɘa̓NXTCgXNveBOiCWE-79jɂ”\ł邱ƂɒӂĂB

tF[YFA[LeN`ѐ݌v

Felten  Zeller ̒񏥂 "double-submitted cookie" \bhgpĉB
̎@ Javascript Kv邽߁AJavascript LłȂuEUɂ͌ʂ܂B
̊ɘa̓NXTCgXNveBOiCWE-79jɂ”\ł邱ƂɒӂĂB

tF[YFA[LeN`ѐ݌v

Ԃ̕ύXNSẴNGXgɂāAGET \bhgpȂʼnB

tF[YF

Ӑ}y[W烊NGXgMĂ邩mF邽߁AHTTP Referer wb_mFĉB[UvLVvCoV[̗R Referer ̑M𖳌ɂÔ\邽߁A{̋@\ƂĈᔽ”\܂B
̊ɘa̓NXTCgXNveBOiCWE-79jɂ”\ł邱ƂɒӂĂBU҂̓NXTCgXNveBOɂāA[UɂȂ肷܂ Referer 𐶐A邢 Referer ̋‚ꂽy[WAӂ̂郊NGXg𐶐”\܂B

֌W

 

NatureTypeIDNameView(s) this relationship pertains to
RequiresWeakness Base346Origin Validation ErrorResearch Concepts1000
RequiresWeakness Base441Unintended Proxy/IntermediaryResearch Concepts1000
RequiresWeakness Base613Unintended Proxy/IntermediaryResearch Concepts1000
RequiresWeakness Class642External Control of Critical State DataResearch Concepts1000
ChildOfWeakness Class345Insufficient Verification of Data AuthenticityDevelopment Concepts (primary)699
Research Concepts (primary)1000
ChildOfCategory716OWASP Top Ten 2007 Category A5 - Cross Site Request Forgery (CSRF)Weaknesses in OWASP Top Ten (2007) (primary)629
ChildOfCategory7512009 Top 25 - Insecure Interaction Between ComponentsWeaknesses in the 2009 CWE/SANS Top 25 Most Dangerous Programming Errors (primary)750
ChildOfCategory8012010 Top 25 - Insecure Interaction Between ComponentsWeaknesses in the 2010 CWE/SANS Top 25 Most Dangerous Programming Errors(primary)800
ChildOfCategory814OWASP Top Ten 2010 Category A5 - Cross-Site Request Forgery(CSRF)Weaknesses in OWASP Top Ten (2010)(primary)809
MemberOfView635Weaknesses Used by NVDWeaknesses Used by NVD (primary)635
PeerOfWeakness Base79Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')Research Concepts1000

 

֌W̕⑫

NXTCgXNveBOiXSSjɂACSRF ”\܂B
iKACSRF ̌ XSS łƂ͌܂Bj

v iCWE ̌j

肪ɂȂn߂ 2008 NO܂ł́ACVE ɂĉߏ񍐂Ă܂ACSRF ͂قƂǂ Web AvP[Vɑ݂Ǝ㐫łB

gDł̕

 

gD܂͑gDł̕ m[h ID CWE̕ނƂ̓Kx ޖ
PLOVER Cross-Site Request Forgery (CSRF)
OWASP Top Ten 2007 A5 Cross Site Request Forgery (CSRF)
WASC 9 Cross-site Request Forgery

 

֘AUp^[

 

CAPEC-ID Up^[ (CAPEC Version 1.5)
62 Cross Site Request Forgery (aka Session Riding)
111 JSON Hijacking (aka JavaScript Hijacking)

 

Q

[REF-17] Michael Howard, David LeBlanc and John Viega. "24 Deadly Sins of Software Security". "Sin 2: Web-Server Related Vulnerabilities (XSS, XSRF, and Response Splitting)." Page 37. McGraw-Hill. 2010.
Peter W. "Cross-Site Request Forgeries (Re: The Dangers of Allowing Users to Post Images)".
Bugtraq. <http://marc.info/?l=bugtraq&m=99263135911884&w=2>.
OWASP. "Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet". <http://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet>.
Edward W. Felten and William Zeller. "Cross-Site Request Forgeries: Exploitation and Prevention". 2008-10-18. <http://freedom-to-tinker.com/sites/default/files/csrf.pdf>.
Robert Auger. "CSRF - The Cross-Site Request Forgery (CSRF/XSRF) FAQ". <http://www.cgisecurity.com/articles/csrf-faq.shtml>.
Cross-site request forgery. Wikipedia. 2008-12-22. <http://en.wikipedia.org/wiki/Cross-site_request_forgery>.
Jason Lam. "Top 25 Series - Rank 4 - Cross Site Request Forgery". SANS Software Security Institute. 2010-03-03. <http://blogs.sans.org/appsecstreetfighter/2010/03/03/top-25-series-%E2%80%93-rank-4-%E2%80%93-cross-site-request-forgery/>.

XV

[2011N0421]
  2010N1012_̃f[^ɍXV
[2009N0629]
  2009N0202_̉L URL ɍ쐬
    http://cwe.mitre.org/data/definitions/352.html


o^ 2011/04/21

ŏIXV 2023/04/04