lắp mạng cáp quang fpt thái nguyên

Thiết lập luật Modsecurity chống SQL Injection

Thiết lập luật Modsecurity chống SQL Injection 1) Giới thiệu SQL injection được đánh giá là một trong những lỗi cơ bản và phổ biến trên các ...

Thiết lập luật Modsecurity chống SQL Injection



1) Giới thiệu
SQL injection được đánh giá là một trong những lỗi cơ bản và phổ biến trên các ứng dụng Web. Trong bài viết này tôi sẽ trình bày cách sử dụng Modsecurity để có thể ngăn chặn lỗi này trên một ứng dụng web.
Trong bài viết tôi chủ yếu tập trung vào MySQL một trong những hệ quản trị cơ sở dữ liệu phổ biến hiện nay.
Một số lưu ý trước khi vào nội dung chính của bài viết này:
Trong MySQL có hai cơ sở dữ liệu mặc định:
Mã:
mysql (Privileged)
information_schema (Version >= 5) .
Các dấu comment:
Mã:
#
/*
-- -
;
`
Các dấu comment trong MySQL được hiểu nếu trong câu truy vấn gặp dấu comment thì toàn bộ phần truy vấn đằng sau sẽ được hiểu thành comment và không được thực hiện.
Ví dụ như câu truy vấn:
Mã:
' OR 1=1 -- -' ORDER BY id;
Câu này sẽ được hiểu thành: ' OR 1=1 -- -' phần ORDER BY id bị hiểu thành comment của câu truy vấn.
Tiếp theo trong một form đăng nhập bạn sẽ hiểu là việc sau khi người dùng POST dữ liệu lên server thì Server sẽ kiểm tra xem trong cơ sở dữ liệu có các bản ghi tương ứng không. Vì vậy có một số cách mà hacker thường sử dụng:
Mã:
' OR '1
' OR 1 -- -
" OR "" = "
" OR 1 = 1 -- -
'='
'LIKE'
'=0--+
Bản chất của những đoạn mã này là việc inject vào ứng dụng một câu truy vấn nhằm biến câu truy vấn trở thành luôn đúng và có thể Bypass qua việc truy vấn các bản ghi trong cơ sở dữ liệu của website.
Ví dụ:
Mã:
SELECT * FROM Users WHERE username = 'Mike' AND password = '' OR '' = ''
Câu truy vấn này được hiểu: tìm trong bảng Users có tên đăng nhập là Mike và password là OR = ‘’ là 1 phép toán logic đúng điều này làm cho câu truy vấn trở thành câu truy vấn đúng.
Trong MySQL có bảng mặc định là mysql.user và có 2 cột là user, password có thể dùng câu truy vấn: SELECT current_user; để thấy được điều này.
Thông thường một lập trình viên sẽ thường có những hàm lọc dữ liệu trước khi sử dụng dữ liệu cho các ứng dụng web của mình. Tuy vậy không phải các hàm lọc này lúc nào cũng phát huy tác dụng ví dụ như viêc lọc từ khóa UNION, SELECT… bằng cách:
Hex các dữ liệu truyền vào:
Mã:
' AND 1=0; DECLARE @S VARCHAR(4000) SET @S=CAST(0x53454c4543542031 AS VARCHAR(4000)); EXEC (@S);--sp_password
Sử dụng các URL Encode:
Mã:
%53%45%4c%45%43%54%20%31%20%46%52%4f%4d%20%64%75%61%6c
Có thể còn sử dụng Double URL Encoded:
Mã:
%2553%2545%254c%2545%2543%2554%2520%2531%2520%2546%2552%254f%254d%2520%2564%2575%2561%256c
2). Sử dụng luật chặn
Với tâm lý của một hacker thường sẽ chỉ quan tâm đến những dữ liệu mình cần và bỏ qua phần còn lại. Vì vậy hacker thường sử dụng các ký tự comment trong MySQL để có thể đạt được mục đích của mình
Như đã phân tích phần comment trong MySQL chúng ta có thể dễ dàng chặn được các ký tự coment với Modsecurity:
Sẽ cần định nghĩ một đoạn regex:
Mã:
(/\*!?|\*/|[';]--|--[\s\r\n\v\f]|(?:--[^-]*?-)|([^\-&])#.*?[\s\r\n\v\f]|;?\\x00)
Đoạn regex này với ý nghĩa bỏ qua tất cả các ký tự: ‘\*’, ‘--’, ‘-’….
Tránh việc bypass chúng ta nên để giá trị các biến truyền vào dạng ký tự thông thường và có được urlDecodeUni hay không.
Lời khuyên trong phần này để có thể dễ dàng phát hiện ra luật thiết lập có đúng không thì nên lưu lại log.
Một số cấu hình mặc định của Modsecurity các giá trị biến được gửi lên server chuyển về dạng plain-text sau đó so sánh với regex nếu không vi phạm sẽ được server sử lý và trả lại người dùng . Nếu vi phạm sẽ ngay lập tức trả về người dùng (tùy theo cấu hình mặc định) tôi để 404 Not found, và lưu vào Auditlog
Chặn các tên database phổ biến.
Định nghĩa 1 đoạn regex:
Mã:
(?i:(?:m(?:s(?:ysaccessobjects|ysaces|ysobjects|ysqueries|ysrelationships|ysaccessstorage|ysaccessxml|ysmodules|ysmodules2|db)|aster\.\.sysdatabases|ysql\.db)|s(?:ys(?:\.database_name|aux)|chema(?:\W*\(|_name)|qlite(_temp)?_master)|d(?:atabas|b_nam)e\W*\(|information_schema|pg_(catalog|toast)|northwind|tempdb))
Đoạn regex này giúp phát hiện các tên mặc định của ORACLE, và MySQL: ysaccessobjects, ysaces, ysobjects, ysrelationships, ysaccessstorage, ysmodules...
Một số luật tôi đã thiết lập:

Mã:
[Detect comment]
SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "(/\*!?|\*/|[';]--|--[\s\r\n\v\f]|(?:--[^-]*?-)|([^\-&])#.*?[\s\r\n\v\f]|;?\\x00)" "phase:2,rev:'2',maturity:'8',accuracy:'8',id:'981231',t:none,t:urlDecodeUni,block,msg:'SQL Comment Sequence Detected.',severity:'2',capture,logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',tag:' /WEB_ATTACK/SQL_INJECTION',tag:'WASCTC/WASC-19',tag:'/A1',tag:'OWASP_AppSensor/CIE1',tag:'PCI/6.5.2',setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.sql_injection_score=+1,setvar:'tx.msg=%{rule.msg}',setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/SQL_INJECTION-%{matched_var_name}=%{tx.0}"
----[ Detect DB Names ]------
SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "(?i:(?:m(?:s(?:ysaccessobjects|ysaces|ysobjects|ysqueries|ysrelationships|ysaccessstorage|ysaccessxml|ysmodules|ysmodules2|db)|aster\.\.sysdatabases|ysql\.db)|s(?:ys(?:\.database_name|aux)|chema(?:\W*\(|_name)|qlite(_temp)?_master)|d(?:atabas|b_nam)e\W*\(|information_schema|pg_(catalog|toast)|northwind|tempdb))" \
                "phase:2,rev:'2',ver:'OWASP_CRS/2.2.9',maturity:'9',accuracy:'8',capture,t:none,t:urlDecodeUni,ctl:auditLogParts=+E,block,msg:'SQL Injection Attack: Common DB Names Detected',id:'981320',logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',severity:'2',tag:'OWASP_CRS/WEB_ATTACK/SQL_INJECTION',tag:'WASCTC/WASC-19',tag:'OWASP_TOP_10/A1',tag:'OWASP_AppSensor/CIE1',tag:'PCI/6.5.2',setvar:'tx.msg=%{rule.msg}',setvar:tx.sql_injection_score=+%{tx.critical_anomaly_score},setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/SQL_INJECTION-%{matched_var_name}=%{tx.0}"
Chú ý: Biến setvar:tx.sql_injection_score dùng để đếm số lần request vi phạm của 1 IP tôi đang để nếu setvar:tx.sql_injection_score=1 tôi sẽ chặn request đó.
Ads Here
Tên

1st,2,8051,3,AAG,1,ADS,2,ADSL,2,AIO,1,Alarm,1,Altcoin,1,AMD,2,Amplifier,4,Android,2,Android TV,3,AOE,1,APG,1,APK,3,ASIC,2,ATX,2,AVG,3,Ấp trứng,2,Bàn phím cơ,1,Bản quyền,1,baner,3,Bảng giá,5,Banggood,1,Báo giá,1,Báo hỏng,1,Bảo Mật,4,BCC,1,BCN,1,Binance,1,Bitcoin,5,Bitmex,1,Bittrex,1,BIX,1,blogger,2,BNB,1,bootrom,1,BTC,4,Build PC,1,ByteCoin,1,cable,1,Cài đặt,3,Cài Win,2,Camera,6,Camera giám sát,3,camera IP,2,Cáp quang,8,Cáp quang Cá nhân,2,Cáp quang Doanh nghiệp,1,Cấu hình máy,1,CCTV,1,Chống nước,1,Clicksense,2,Cloud,1,Cloud camera,2,Code,8,Code web,8,coin,5,Combo,1,Controller,1,Covid-19,9,Công nghệ mới,1,Cryptocurrency,26,Cung hoàng đạo,1,DAG,1,DDos,39,DEEP WEB,3,Dịch vụ FPT,4,DIY,8,Đại Từ,1,Đánh giá,5,Đào coin,6,Đâu là đúng,5,Địa chỉ,1,Điện thoại,2,Điều khiển giọng nói,1,Đồng hồ,1,Electronics,1,English,2,epon,1,ETC,1,ETH,6,Facebook,10,featured,1,Foxy,1,fpt,12,FPT camera,4,FPT internet,3,FPT Play,1,FPT Play Box,32,FPT Playbox,3,FPT Telecom,5,FPT Thái Nguyên,6,FPT TV,1,FPT TV 4K,1,FPT TVOnly,1,fshare,1,G-97D2,3,G97RG6M1,1,Game,2,Game gear,1,Game PC,2,getlink,1,Ghost,2,Ghost Windows 10,2,Ghost Windows 7,7,Gói cá nhân,2,Gói cước,2,Gói cước FPT,8,Gói Doanh Nghiệp,4,Gói kênh FPT Play,1,GPON,3,GPU,2,Hà Nội,1,Hacker,1,Hàn Quốc,1,HBO,1,HG531,2,Hi FPT,3,HiFPT,1,Học Online,1,Hot,15,houbi,3,HT,1,HTC,1,Hướng dẫn,10,Hướng dẫn FPT,8,IC555,4,ICO,3,Ifan,1,Infographic,2,internet,8,Inverter,1,IP tĩnh,1,IPTV,1,ISO,1,K+,1,KCS,1,Key,1,keypad,1,Kho Tut,59,Khuyến mại,10,kích sóng wifi,1,Kiếm tiền trên mạng,1,Kiến thức,2,Kinh nghiệm,1,Lan,1,Laptop,1,Lắp mạng,3,LED,6,leech link,1,Li-Ion,1,Light,1,LM386,1,Love,2,Lừa đảo,1,Ma kết,1,Mạch Audio,1,Mạch điện tử,1,Mạch sạc,5,Mainboard,1,Mạng chậm,1,Mạng internet,3,Mạng LAN,3,Máy ảnh,1,Máy tính,3,Meter,1,Miband,3,Microsoft,1,Minning,4,MMO,3,Mobile,3,Modem,17,Mở két,1,Music,1,Netflix,1,News,7,Ngoại ngữ,1,Nguồn,3,Nvidia,1,offer,1,Office,2,Onedrive,1,Online,1,OS,2,Others,1,Paypal,1,PC,1,PCB,1,PDF,1,Phấn Mễ,1,Phần mềm,2,Phim,1,Phòng nét,1,Photo,1,Phổ Yên,1,Phú Lương,1,Phụ nữ,1,PIC,2,Pin - Ắc qui,4,proxy,1,PUBG,1,Python,4,Remitano,3,Repeater,1,Review,4,Review FPT,2,Root,1,Router,2,Rút gọn link,1,sạc dụng phòng,1,Sạc điện thoại,1,Sàn giao dịch,2,Scam,3,Sensor,2,setup,2,smarthome,1,Softwares,5,sonoff,1,SQL,3,Super 22,2,Tài liệu,182,Tenda Nova MW3,1,Thái Nguyên,19,Thẻ visa,1,Thể thao,1,Thi công,1,Thơ thẩn,3,Thủ thuật,89,Tiền bạc,1,Tiền điện tử,3,Tin FPT,5,Tin tức,41,Tình yêu,4,Tivi box,1,Tivi Gold,1,TNUT,1,Tool,2,Tool đào coin,6,Tools,45,TP Link,1,TP-Link,3,trade coin,8,Trading,1,Transitsor,2,Trâu cày,2,Truyện,3,Truyền hình,4,Truyền hình FPT,30,Tuyển dụng,3,Tư vấn,4,TV Box,3,UG,15,USB,1,USDT,2,VGA,1,Video,1,Viettel,2,Viễn thông,1,Vinaphone,1,Virus,11,VPN,1,Web,1,wifi,17,Wifi Maketting,1,Window XP,3,Windows,4,Windows 10,6,Windows 10 Mobile,1,Windows 7,2,Xiaomi,4,XMR,2,Youtube,1,Zcash,1,Zec,1,
ltr
item
Tổng đài lắp mạng FPT Thái Nguyên |Cáp quang | Wifi | Truyền hình 4K |FPT Play Box: Thiết lập luật Modsecurity chống SQL Injection
Thiết lập luật Modsecurity chống SQL Injection
Tổng đài lắp mạng FPT Thái Nguyên |Cáp quang | Wifi | Truyền hình 4K |FPT Play Box
https://www.xn--fptthinguyn-o7a6j.vn/2015/07/thiet-lap-luat-modsecurity-chong-sql.html
https://www.xn--fptthinguyn-o7a6j.vn/
https://www.xn--fptthinguyn-o7a6j.vn/
https://www.xn--fptthinguyn-o7a6j.vn/2015/07/thiet-lap-luat-modsecurity-chong-sql.html
true
8240370674769512952
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy