国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

網(wǎng)絡(luò)安全必學(xué)SQL注入

這篇具有很好參考價(jià)值的文章主要介紹了網(wǎng)絡(luò)安全必學(xué)SQL注入。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.1 .Sql注入攻擊原理

SQL注入漏洞可以說(shuō)是在企業(yè)運(yùn)營(yíng)中會(huì)遇到的最具破壞性的漏洞之一,它也是目前被利用得最多的漏洞。要學(xué)會(huì)如何防御SQL注入,首先我們要學(xué)習(xí)它的原理。

針對(duì)SQL注入的攻擊行為可描述為通過(guò)在用戶可控參數(shù)中注入SQL語(yǔ)法,破壞原有SQL結(jié)構(gòu),達(dá)到編寫程序時(shí)意料之外結(jié)果的攻擊行為。其成因可以歸結(jié)為以下兩個(gè)原因疊加造成的:

程序編寫者在處理應(yīng)用程序和數(shù)據(jù)庫(kù)交互時(shí),使用字符串拼接的方式構(gòu)造SQL語(yǔ)句。未對(duì)用戶可控參數(shù)進(jìn)行足夠的過(guò)濾便將參數(shù)內(nèi)容拼接進(jìn)入到SQL語(yǔ)句中。
注入攻擊的本質(zhì),是把用戶輸入的數(shù)據(jù)當(dāng)做代碼執(zhí)行。這里有兩個(gè)關(guān)鍵條件:用戶能夠控制輸入。
原本程序要執(zhí)行的代碼,拼接了用戶輸入的數(shù)據(jù)。

1.2 .Sql審計(jì)方法

手動(dòng)找的話,可以直接找到sqlmapper.xml文件或者直接搜索 select、update、delete、insert “String sql=”等關(guān)鍵詞,定位SQL xml配置文件。

如果 sql 語(yǔ)句中有出現(xiàn) $ 進(jìn)行參數(shù)拼接,則存在SQL注入風(fēng)險(xiǎn)。

當(dāng)找到某個(gè)變量關(guān)鍵詞有 SQL 注入風(fēng)險(xiǎn)時(shí),可以再根據(jù)調(diào)用鏈找到該存在注入風(fēng)險(xiǎn)的業(yè)務(wù)邏輯代碼,查看參數(shù)來(lái)源是否安全、是否有配置SQL危險(xiǎn)參數(shù)過(guò)濾的過(guò)濾器,最終確認(rèn)是否存在SQL注入。以下給出可能造成sql注入攻擊的關(guān)鍵字,審計(jì)時(shí)可根據(jù)實(shí)際情況進(jìn)項(xiàng)查找

常見SQL語(yǔ)句關(guān)鍵詞

關(guān)鍵詞 解釋
ResultSet 數(shù)據(jù)庫(kù)結(jié)果集的數(shù)據(jù)表,通常通過(guò)執(zhí)行查詢數(shù)據(jù)庫(kù)的語(yǔ)句生成。
executeQuery 執(zhí)行查詢
select 數(shù)據(jù)庫(kù)中的查詢關(guān)鍵字
insert 數(shù)據(jù)庫(kù)中的插入關(guān)鍵字
update 數(shù)據(jù)庫(kù)中的修改關(guān)鍵字
delete 數(shù)據(jù)庫(kù)中的刪除關(guān)鍵字
where 數(shù)據(jù)庫(kù)中的條件關(guān)鍵字
union 數(shù)據(jù)庫(kù)中的聯(lián)合查詢關(guān)鍵字
drop 數(shù)據(jù)庫(kù)中的刪除數(shù)據(jù)庫(kù)關(guān)鍵字
create 數(shù)據(jù)庫(kù)中的創(chuàng)建數(shù)據(jù)庫(kù)關(guān)鍵字
count 數(shù)據(jù)庫(kù)中的返回匹配行數(shù)關(guān)鍵字
java.sql.Connection 與特定數(shù)據(jù)庫(kù)的連接類
Statement 是 Java 執(zhí)行數(shù)據(jù)庫(kù)操作的重要接口
jdbcTemplate 最基本的Spring JDBC模板
PreparedStatement 預(yù)編譯的 SQL 語(yǔ)句的對(duì)象
queryForInt 數(shù)據(jù)庫(kù)查詢方法關(guān)鍵字
queryForObject 數(shù)據(jù)庫(kù)查詢方法關(guān)鍵字
queryForMap 數(shù)據(jù)庫(kù)查詢方法關(guān)鍵字
getConnection 獲取sql連接
outfile 數(shù)據(jù)庫(kù)中把表數(shù)據(jù)導(dǎo)出關(guān)鍵字
load_file 數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)的關(guān)鍵字

【一一幫助安全學(xué)習(xí),所有資源一一】
①網(wǎng)絡(luò)安全學(xué)習(xí)路線
②20份滲透測(cè)試電子書
③安全攻防357頁(yè)筆記
④50份安全攻防面試指南
⑤安全紅隊(duì)滲透工具包
⑥網(wǎng)絡(luò)安全必備書籍
⑦100個(gè)漏洞實(shí)戰(zhàn)案例
⑧安全大廠內(nèi)部教程

1.3Sql注入漏洞危害

1 、 攻擊者可以做到

  • 業(yè)務(wù)運(yùn)營(yíng)的所有數(shù)據(jù)被攻擊
  • 對(duì)當(dāng)前數(shù)據(jù)庫(kù)用戶擁有的所有表數(shù)據(jù)進(jìn)行增、刪、改、查等操作
  • 若當(dāng)前數(shù)據(jù)庫(kù)用戶擁有file_priv權(quán)限,攻擊者可通過(guò)植入木馬的方式進(jìn)一步控制DB所在服務(wù)器
  • 若當(dāng)前數(shù)據(jù)庫(kù)用戶為高權(quán)限用戶,攻擊者甚至可以直接執(zhí)行服務(wù)器命令從而通過(guò)該漏洞直接威脅整個(gè)內(nèi)網(wǎng)系統(tǒng)

2、可能對(duì)業(yè)務(wù)造成的影響

① 用戶信息被篡改

② 攻擊者偷取代碼和用戶數(shù)據(jù)惡意獲取

線上代碼被非法篡改,并造成為惡意攻擊者輸送流量或其他利益的影響

1.4 Sql注入漏洞代碼示例

Java 代碼動(dòng)態(tài)構(gòu)建 SQL

Statement stmt = null;

ResultSet rs = null;

try{

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String sqlString = "SELECT * FROM t_item WHERE owner='" + userName + "' AND itemName='" + request.getParameter("itemName") + "'";

stmt = connection.createStatement();

rs = stmt.executeQuery(sqlString);

// ... result set handling

}

catch (SQLException se){

// ... logging and error handling

}

這里將查詢字符串常量與用戶輸入進(jìn)行拼接來(lái)動(dòng)態(tài)構(gòu)建SQL查詢命令。僅當(dāng)itemName不包含單引號(hào)時(shí),這條查詢語(yǔ)句的行為才會(huì)是正確的。如果一個(gè)攻擊者以用戶名wiley發(fā)起一個(gè)請(qǐng)求,并使用以下條目名稱參數(shù)進(jìn)行查詢:

name' OR 'a' = 'a

那么這個(gè)查詢將變成:

SELECT * FROM t_item WHERE owner = 'wiley' AND itemname = 'name' OR 'a'='a';

此處,額外的OR ‘a(chǎn)’='a’條件導(dǎo)致整個(gè)WHERE子句的值總為真。那么,這個(gè)查詢便等價(jià)于如下非常簡(jiǎn)單的查詢:

SELECT * FROM t_item

這個(gè)簡(jiǎn)化的查詢使得攻擊者能夠繞過(guò)原有的條件限制:這個(gè)查詢會(huì)返回items表中所有儲(chǔ)存的條目,而不管它們的所有者是誰(shuí),而原本應(yīng)該只返回屬于當(dāng)前已認(rèn)證用戶的條目。

在存儲(chǔ)過(guò)程中動(dòng)態(tài)構(gòu)建SQL

Java代碼:

CallableStatement = null

ResultSet results = null;

try

{

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

cs = connection.prepareCall("{call sp_queryItem(?,?)}");

cs.setString(1, userName);

cs.setString(2, itemName);

results = cs.executeQuery();

// ... result set handling

}

catch (SQLException se)

{

// ... logging and error handling

}

SQL Server存儲(chǔ)過(guò)程:

CREATE PROCEDURE sp_queryItem

@userName varchar(50),

@itemName varchar(50)

AS

BEGIN

DECLARE @sql nvarchar(500);

SET @sql = 'SELECT * FROM t_item

WHERE owner = ''' + @userName + '''

AND itemName = ''' + @itemName + '''';

EXEC(@sql);

END

GO

在存儲(chǔ)過(guò)程中,通過(guò)拼接參數(shù)值來(lái)構(gòu)建查詢字符串,和在應(yīng)用程序代碼中拼接參數(shù)一樣,同樣是有SQL注入風(fēng)險(xiǎn)的。

Hibernate 動(dòng)態(tài)構(gòu)建 SQL/HQL

原生SQL查詢:

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

Query sqlQuery = session.createSQLQuery("select * from t_item where owner = '" + userName + "' and itemName = '" + itemName + "'");

List<Item> rs = (List<Item>) sqlQuery.list();

HQL查詢:

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

Query hqlQuery = session.createQuery("from Item as item where item.owner = '" + userName + "' and item.itemName = '" + itemName + "'");

List<Item> hrs = (List<Item>) hqlQuery.list();

即使是使用Hibernate,如果在動(dòng)態(tài)構(gòu)建SQL/HQL查詢時(shí)包含了不可信輸入,同樣也會(huì)面臨SQL/HQL注入的問(wèn)題。

HQL代碼中,session.createQuery使用HQL語(yǔ)句將查詢到的數(shù)據(jù)存到到list集合中,需要時(shí)在拿出來(lái)使用。而參數(shù)中itemName是通過(guò)request.getParameter直接獲取。攻擊者若在此處寫入惡意語(yǔ)句,程序?qū)阂庹Z(yǔ)句查詢出來(lái)的數(shù)據(jù)存放在list集合中,再通過(guò)某處調(diào)用成功將數(shù)據(jù)顯示在前臺(tái)。

Mybatis注入分析

Mybatis框架下易產(chǎn)生SQL注入漏洞的情況主要分為以下三種:

1)模糊查詢like

例如對(duì)人員姓名檢索進(jìn)行模糊查詢,如果考慮安全編碼規(guī)范問(wèn)題,其對(duì)應(yīng)的SQL語(yǔ)句如下:

Select * from user where name like '%#{name}%'

但由于這樣寫程序會(huì)報(bào)錯(cuò),研發(fā)人員將SQL查詢語(yǔ)句修改如下:

Select * from user where name like '%${name}%'

在這種情況下我們發(fā)現(xiàn)程序不再報(bào)錯(cuò),但是此時(shí)產(chǎn)生了SQL語(yǔ)句拼接問(wèn)題,如果java代碼層面沒(méi)有對(duì)用戶輸入的內(nèi)容做處理勢(shì)必會(huì)產(chǎn)生SQL注入漏洞。

2)in之后的參數(shù)

例如對(duì)人員姓名進(jìn)行同條件多值檢索的時(shí)候,如當(dāng)用戶輸入001,002,003…時(shí),如果考慮安全編碼規(guī)范問(wèn)題,其對(duì)應(yīng)的SQL語(yǔ)句如下:

Select * from name where id in (#{id})

但由于這樣寫程序會(huì)報(bào)錯(cuò),研發(fā)人員將SQL查詢語(yǔ)句修改如下:

Select * from name where id in (${id})

修改SQL語(yǔ)句之后,程序停止報(bào)錯(cuò),但是卻引入了SQL語(yǔ)句拼接的問(wèn)題,如果沒(méi)有對(duì)用戶輸入的內(nèi)容做過(guò)濾,勢(shì)必會(huì)產(chǎn)生SQL注入漏洞。

3)order by之后(重點(diǎn)和區(qū)分點(diǎn))

當(dāng)根據(jù)姓名、id序號(hào)等信息用戶進(jìn)行排序的時(shí)候,如果考慮安全編碼規(guī)范問(wèn)題,其對(duì)應(yīng)的SQL語(yǔ)句如下:

Select * from user where name = 'qihoo' order by #{id} desc

但由于發(fā)布時(shí)間id不是用戶輸入的參數(shù),無(wú)法使用預(yù)編譯。研發(fā)人員將SQL查詢語(yǔ)句修改如下:

Select * from user where name = 'qihoo' order by ${id} desc

修改之后,程序未通過(guò)預(yù)編譯,但是產(chǎn)生了SQL語(yǔ)句拼接問(wèn)題,極有可能引發(fā)SQL注入漏洞。

1.5 .實(shí)戰(zhàn)案例-OFCMS SQL注入漏洞分析

本文中使用ofcms進(jìn)行SQL注入漏洞講解,此CMS算是對(duì)新手學(xué)習(xí)代碼審計(jì)比較友好的CMS。
網(wǎng)絡(luò)安全必學(xué)SQL注入

上述為安裝成功頁(yè)面,如何安裝CMS本章不在贅述。

后臺(tái)頁(yè)面:http://localhost:8080/ofcms-admin/admin/index.html

網(wǎng)絡(luò)安全必學(xué)SQL注入

漏洞點(diǎn):

ofcms-admin/src/main/java/com/ofsoft/cms/admin/controller/system/SystemGeneratrController.java

create方法

| 

/**

* 創(chuàng)建表

*/

public void create() {

try {

String sql = getPara("sql");

Db.update(sql);

rendSuccessJson();

} catch (Exception e) {

e.printStackTrace();

rendFailedJson(ErrorCode.get("9999"), e.getMessage());

}

}

上述代碼中使用getpara獲取sql的參數(shù)值,并update,跟進(jìn)一下getpara和update方法。

跳轉(zhuǎn)至 jfinal-3.2.jar/com/jfinal/core/controller.class

public String getPara(String name) {

return this.request.getParameter(name);

}

上述代碼無(wú)特殊用意,就是獲取參數(shù)值,繼續(xù)跟進(jìn) Db.update 方法。

跳轉(zhuǎn)至 jfinal-3.2.jar/com/jfinal/plugin/activerecord/Db.class

public static int update(String sql) {

return MAIN.update(sql);

}

發(fā)現(xiàn)調(diào)用 MAIN.update , 繼續(xù)跟進(jìn)。

跳轉(zhuǎn)至 jfinal-3.2.jar/com/jfinal/plugin/activerecord/DbPro.class

public int update(String sql) {

return this.update(sql, DbKit.NULL_PARA_ARRAY);

}

繼續(xù)跟進(jìn)到最后,發(fā)現(xiàn)華點(diǎn)。

public int update(String sql, Object... paras) {

Connection conn = null;

int var4;

try {

conn = this.config.getConnection();//連接

var4 = this.update(this.config, conn, sql, paras);//調(diào)用update更新

} catch (Exception var8) {

throw new ActiveRecordException(var8);

} finally {

this.config.close(conn);

}

return var4;

}

重點(diǎn):Object…

Object是所有類的基類,而 Object… 是不確定方法參數(shù)情況下的一種多態(tài)表現(xiàn)形式(可以傳遞多個(gè)參數(shù))。

再繼續(xù)跟進(jìn) update ,同文件代碼

int update(Config config, Connection conn, String sql, Object... paras) throws SQLException {

PreparedStatement pst = conn.prepareStatement(sql);

config.dialect.fillStatement(pst, paras);

int result = pst.executeUpdate();

DbKit.close(pst);

return result;

}

上述代碼執(zhí)行SQL語(yǔ)句,并返回結(jié)果。

至此,整個(gè)功能流程結(jié)束,在我們跟進(jìn)的過(guò)程中,代碼中無(wú)任何過(guò)濾語(yǔ)句,獲取參數(shù)值,調(diào)用update方法更新,更新成功后返回結(jié)果。

漏洞驗(yàn)證

網(wǎng)絡(luò)安全必學(xué)SQL注入

漏洞點(diǎn)打上斷點(diǎn),網(wǎng)頁(yè)中輸入poc進(jìn)行驗(yàn)證

update of_cms_topic set topic_url=updatexml(1,concat(0x7e,(user())),0) where topic_id = 1

網(wǎng)絡(luò)安全必學(xué)SQL注入
網(wǎng)絡(luò)安全必學(xué)SQL注入
網(wǎng)絡(luò)安全必學(xué)SQL注入
網(wǎng)絡(luò)安全必學(xué)SQL注入

根據(jù)如上截圖可看出我們傳入的SQL語(yǔ)句是被完整的接收,并未做任何過(guò)濾直接帶入數(shù)據(jù)庫(kù)執(zhí)行,所以此處直接寫入漏洞代碼爆出當(dāng)前數(shù)據(jù)庫(kù)賬戶為 root。

上述為sqlmap工具跑出來(lái)的注入點(diǎn)。

1.6 漏洞修復(fù)方法

添加全局過(guò)濾器,過(guò)濾特殊字符

網(wǎng)絡(luò)安全必學(xué)SQL注入

SQLFilter.java中:
網(wǎng)絡(luò)安全必學(xué)SQL注入

PreparedStatement 參數(shù)化

如果使用參數(shù)化查詢,則在SQL語(yǔ)句中使用占位符表示需在運(yùn)行時(shí)確定的參數(shù)值。參數(shù)化查詢使得SQL查詢的語(yǔ)義邏輯被預(yù)先定義,而實(shí)際的查詢參數(shù)值則等到程序運(yùn)行時(shí)再確定。參數(shù)化查詢使得數(shù)據(jù)庫(kù)能夠區(qū)分SQL語(yǔ)句中語(yǔ)義邏輯和數(shù)據(jù)參數(shù),以確保用戶輸入無(wú)法改變預(yù)期的SQL查詢語(yǔ)義邏輯。

在Java中,可以使用java.sql.PreparedStatement來(lái)對(duì)數(shù)據(jù)庫(kù)發(fā)起參數(shù)化查詢。在這個(gè)正確示例中,如果一個(gè)攻擊者將itemName輸入為name’ OR ‘a(chǎn)’ = ‘a(chǎn),這個(gè)參數(shù)化查詢將免受攻擊,而是會(huì)查找一個(gè)itemName匹配name’ OR ‘a(chǎn)’ = 'a這個(gè)字符串的條目。

PreparedStatement stmt = null

ResultSet rs = null

try

{

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

// ...Ensure that the length of userName and itemName is legitimate

// ...

String sqlString = "SELECT * FROM t_item WHERE owner=? AND itemName=?";

stmt = connection.prepareStatement(sqlString);

stmt.setString(1, userName);

stmt.setString(2, itemName);

rs = stmt.executeQuery();

// ... result set handling

}

catch (SQLException se)

{

// ... logging and error handling

}

存儲(chǔ)過(guò)程參數(shù)化

這個(gè)存儲(chǔ)過(guò)程使用參數(shù)化查詢,而未包含不安全的動(dòng)態(tài)SQL構(gòu)建。數(shù)據(jù)庫(kù)編譯此存儲(chǔ)過(guò)程時(shí),會(huì)生成一個(gè)SELECT查詢的執(zhí)行計(jì)劃,只允許原始的SQL語(yǔ)義被執(zhí)行。任何參數(shù)值,即使是被注入的SQL語(yǔ)句也不會(huì)被執(zhí)行,因?yàn)樗鼈儾皇菆?zhí)行計(jì)劃的一部分。

CallableStatement = null

ResultSet results = null;

try

{

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

// ... Ensure that the length of userName and itemName is legitimate

// ...

cs = connection.prepareCall("{call sp_queryItem(?,?)}");

cs.setString(1, userName);

cs.setString(2, itemName);

results = cs.executeQuery();

// ... result set handling

}

catch (SQLException se)

{

// ... logging and error handling

}

Hibernate 參數(shù)化查詢

Hibernate支持SQL/HQL參數(shù)化查詢。為了防止SQL注入以及改善性能,以上這些示例使用了參數(shù)化綁定 的方式來(lái)設(shè)置查詢參數(shù)。

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

Query hqlQuery = session.createQuery("from Item as item where item.owner = ? and item.itemName = ?");

hqlQuery.setString(1, userName);

hqlQuery.setString(2, itemName);

List<Item> rs = (List<Item>) hqlQuery.list();

HQL基于名稱的參數(shù)化查詢

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

Query hqlQuery = session.createQuery("from Item as item where item.owner = :owner and item.itemName = :itemName");

hqlQuery.setString("owner", userName);

hqlQuery.setString("itemName", itemName);

List<Item> rs = (List<Item>) hqlQuery.list();

原生參數(shù)化查詢

String userName = ctx.getAuthenticatedUserName(); //this is a constant

String itemName = request.getParameter("itemName");

Query sqlQuery = session.createSQLQuery("select * from t_item where owner = ? and itemName = ?");

sqlQuery.setString(0, owner);

sqlQuery.setString(1, itemName);

List<Item> rs = (List<Item>) sqlQuery.list();

MyBatis框架的修復(fù)方案

盡量使用#描述參數(shù),如果一定要使用$,則需要自己過(guò)濾用戶輸入

模糊查詢like SQL注入修復(fù)建議

按照新聞標(biāo)題對(duì)新聞進(jìn)行模糊查詢,可將SQL查詢語(yǔ)句設(shè)計(jì)如下:

select * from news where name like concat(‘%’,#{name }, ‘%’)

采用預(yù)編譯機(jī)制,避免了SQL語(yǔ)句拼接的問(wèn)題,從根源上防止了SQL注入漏洞的產(chǎn)生。

in之后的參數(shù)SQL注入修復(fù)建議

在對(duì)新聞進(jìn)行同條件多值查詢的時(shí)候,可使用Mybatis自帶循環(huán)指令解決SQL語(yǔ)句動(dòng)態(tài)拼接的問(wèn)題:

select * from news where id in<foreach collection="ids" item="item" open="("separator="," close=")">#{item} </foreach>

order by SQL注入修復(fù)建議

【一一幫助安全學(xué)習(xí)一一】
①網(wǎng)絡(luò)安全學(xué)習(xí)路線
②20份滲透測(cè)試電子書
③安全攻防357頁(yè)筆記
④50份安全攻防面試指南
⑤安全紅隊(duì)滲透工具包
⑥網(wǎng)絡(luò)安全必備書籍
⑦100個(gè)漏洞實(shí)戰(zhàn)案例
⑧安全大廠內(nèi)部教程

在Java層面做映射預(yù)編譯機(jī)制只能處理查詢參數(shù),其他地方還需要研發(fā)人員根據(jù)具體情況來(lái)解決。如前面提到的排序情景:

Select * from news where title =‘淘寶’ order by #{time} asc,

這里time不是查詢參數(shù),無(wú)法使用預(yù)編譯機(jī)制,只能這樣拼接:

Select * from news where title =‘淘寶’ order by ${time} asc

針對(duì)這種情況研發(fā)人員可以在java層面做映射來(lái)進(jìn)行解決。如當(dāng)存在發(fā)布時(shí)間time和點(diǎn)擊量click兩種排序選擇時(shí),我們可以限制用戶只能輸入1和2。

當(dāng)用戶輸入1時(shí),我們?cè)诖a層面將其映射為time,當(dāng)用戶輸入2時(shí),將其映射為click。而當(dāng)用戶輸入1和2之外的其他內(nèi)容時(shí),我們可以將其轉(zhuǎn)換為默認(rèn)排序選擇time(或者click)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-437893.html

到了這里,關(guān)于網(wǎng)絡(luò)安全必學(xué)SQL注入的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【網(wǎng)絡(luò)安全】初探SQL注入漏洞

    【網(wǎng)絡(luò)安全】初探SQL注入漏洞

    要想玩SQL注入,一個(gè)簡(jiǎn)單的數(shù)據(jù)交互頁(yè)面是需要的,故我們用PHP做一個(gè)簡(jiǎn)易網(wǎng)頁(yè),有登錄、注冊(cè)和首頁(yè)三塊內(nèi)容。 登錄需要輸入賬號(hào)密碼,等待提交后進(jìn)入系統(tǒng); 注冊(cè)需要輸入名字,密碼,手機(jī)號(hào),照片,等待提交后進(jìn)入系統(tǒng); 首頁(yè)需要利用PHP和數(shù)據(jù)庫(kù)聯(lián)動(dòng)后的查詢語(yǔ)句,

    2024年02月16日
    瀏覽(24)
  • 【網(wǎng)絡(luò)安全】SQL注入漏洞的修復(fù)建議

    【網(wǎng)絡(luò)安全】SQL注入漏洞的修復(fù)建議

    SQL注入是Web應(yīng)用程序常見的安全漏洞之一,攻擊者通過(guò)惡意構(gòu)造的SQL查詢語(yǔ)句,成功在應(yīng)用程序的數(shù)據(jù)庫(kù)中執(zhí)行任意操作,導(dǎo)致數(shù)據(jù)泄露、篡改或其他安全問(wèn)題。 本篇技術(shù)博客將詳細(xì)介紹SQL注入漏洞的修復(fù)建議,包括過(guò)濾危險(xiǎn)字符和使用預(yù)編譯語(yǔ)句,通過(guò)具體的代碼案例幫助

    2024年02月06日
    瀏覽(26)
  • 網(wǎng)絡(luò)安全:Kali Linux 進(jìn)行SQL注入與XSS漏洞利用

    網(wǎng)絡(luò)安全:Kali Linux 進(jìn)行SQL注入與XSS漏洞利用

    目錄 一、實(shí)驗(yàn) 1.環(huán)境 2.Kali Linux 進(jìn)行SQL注入 3.Kali Linux 進(jìn)行XSS漏洞利用 二、問(wèn)題 1.XSS分類 2.如何修改beef-xss的密碼 3.beef-xss 服務(wù)如何管理 4.運(yùn)行beef報(bào)錯(cuò) 5.beef 命令的顏色有哪些區(qū)別 6.owasp-top-10 有哪些變化 (1)主機(jī) 表1? 主機(jī) 系統(tǒng) 版本 IP 備注 Kali Linux 2022.4 192.168.204.154(動(dòng)態(tài)

    2024年04月26日
    瀏覽(22)
  • 【網(wǎng)絡(luò)安全---sql注入(2)】如何通過(guò)SQL注入getshell?如何通過(guò)SQL注入讀取文件或者數(shù)據(jù)庫(kù)數(shù)據(jù)?一篇文章告訴你過(guò)程和原理。

    【網(wǎng)絡(luò)安全---sql注入(2)】如何通過(guò)SQL注入getshell?如何通過(guò)SQL注入讀取文件或者數(shù)據(jù)庫(kù)數(shù)據(jù)?一篇文章告訴你過(guò)程和原理。

    分享一個(gè)非常詳細(xì)的網(wǎng)絡(luò)安全筆記,是我學(xué)習(xí)網(wǎng)安過(guò)程中用心寫的,可以點(diǎn)開以下鏈接獲?。?超詳細(xì)的網(wǎng)絡(luò)安全筆記 本篇博客主要是通過(guò)piakchu靶場(chǎng)來(lái)講解如何通過(guò)SQL注入漏洞來(lái)寫入文件,讀取文件。通過(guò)SQL輸入來(lái)注入木馬來(lái)getshell等,講解了比較詳細(xì)的過(guò)程; 如果想要學(xué)習(xí)

    2024年02月07日
    瀏覽(27)
  • web安全漏洞-SQL注入攻擊實(shí)驗(yàn)

    web安全漏洞-SQL注入攻擊實(shí)驗(yàn)

    實(shí)驗(yàn)?zāi)康?學(xué)習(xí)sql顯注的漏洞判斷原理 掌握sqlmap工具的使用 分析SQL注入漏洞的成因 實(shí)驗(yàn)工具 sqlmap是用python寫的開源的測(cè)試框架,支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,F(xiàn)irebird,Sybase,SAP,MAXDB并支持6種SQL注入手段。 實(shí)驗(yàn)內(nèi)容 SQL注入(SQL I

    2024年02月06日
    瀏覽(28)
  • 6.1 安全漏洞與網(wǎng)絡(luò)攻擊

    6.1 安全漏洞與網(wǎng)絡(luò)攻擊

    數(shù)據(jù)參考:CISP官方? 目錄 安全漏洞及產(chǎn)生原因 信息收集與分析 網(wǎng)絡(luò)攻擊實(shí)施 后門設(shè)置與痕跡清除 什么是安全漏洞 安全漏洞也稱脆弱性,是計(jì)算機(jī)系統(tǒng)存在的缺陷 漏洞的形式 安全漏洞以不同形式存在 漏洞數(shù)量逐年遞增? 漏洞產(chǎn)生的技術(shù)原因 內(nèi)因: 軟件復(fù)雜性使得漏洞不

    2024年02月13日
    瀏覽(22)
  • 【網(wǎng)絡(luò)安全】SQL注入--堆疊注入

    【網(wǎng)絡(luò)安全】SQL注入--堆疊注入

    堆疊注入就是可以同時(shí)執(zhí)行多條語(yǔ)句,危害較大,利用此漏洞可以進(jìn)行刪庫(kù)或者修改數(shù)據(jù)庫(kù)信息 查詢存在多少字段 使用聯(lián)合查詢獲取表名 使用聯(lián)合查詢獲取字段名稱 使用堆疊注入添加賬號(hào)密碼

    2023年04月09日
    瀏覽(35)
  • 漏洞攻擊中怎么去做最全面覆蓋的sql注入漏洞攻擊?表信息是如何泄露的?預(yù)編譯就一定安全?最受歡迎的十款SQL注入工具配置及使用

    漏洞攻擊中怎么去做最全面覆蓋的sql注入漏洞攻擊?表信息是如何泄露的?預(yù)編譯就一定安全?最受歡迎的十款SQL注入工具配置及使用

    漏洞攻擊中怎么去做最全面覆蓋的sql注入漏洞攻擊?表信息是如何泄露的?預(yù)編譯就一定安全?最受歡迎的十款SQL注入工具配置及使用。 SQL注入是因?yàn)楹笈_(tái)SQL語(yǔ)句拼接了用戶的輸入,而且Web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒(méi)有判斷和過(guò)濾,前端傳入后端的參數(shù)是攻擊者可控

    2024年01月24日
    瀏覽(25)
  • 【網(wǎng)絡(luò)安全】SQL注入--寬字節(jié)注入

    【網(wǎng)絡(luò)安全】SQL注入--寬字節(jié)注入

    寬字節(jié)注入,在 SQL 進(jìn)行防注入的時(shí)候,一般會(huì)開啟 gpc,過(guò)濾特殊字符。 一般情況下開啟 gpc 是可以防御很多字符串型的注入,但是如果數(shù)據(jù)庫(kù)編碼不 對(duì),也可以導(dǎo)致 SQL 防注入繞過(guò),達(dá)到注入的目的。如果數(shù)據(jù)庫(kù)設(shè)置寬字節(jié)字 符集 gbk 會(huì)導(dǎo)致寬字節(jié)注入,從而逃逸 gpc 前提

    2023年04月13日
    瀏覽(57)
  • 【網(wǎng)絡(luò)安全】SQL注入詳解

    【網(wǎng)絡(luò)安全】SQL注入詳解

    SQL注入是比較常見的網(wǎng)絡(luò)攻擊方式之一,它不是利用操作系統(tǒng)的BUG來(lái)實(shí)現(xiàn)攻擊,而是針對(duì)程序員編寫時(shí)的疏忽,通過(guò)SQL語(yǔ)句,實(shí)現(xiàn)無(wú)賬號(hào)登錄,甚至篡改數(shù)據(jù)庫(kù)。 1:尋找到SQL注入的位置 2:判斷服務(wù)器類型和后臺(tái)數(shù)據(jù)庫(kù)類型 3:針對(duì)不同的服務(wù)器和數(shù)據(jù)庫(kù)特點(diǎn)進(jìn)行SQL注入攻擊

    2024年02月06日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包