Thứ Hai, 18 tháng 2, 2019

VTV Video Direct Link Generator

Deploying Node.js Apps on Heroku

Tools nho nhỏ viết bằng Nodej và Express bao gồm các modules:

body-parser

cheerio

string

  • File app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
var express = require('express');
var bodyParser = require('body-parser')
var cheerio = require('cheerio');
var request = require('request');
var s = require('string')

var port = Number(process.env.PORT || 5000);
var app = express();

function get_link(url) {

    var link = url;
    
    var text1 = s(link).chompLeft('http://vcplayer.vcmedia.vn/1.1/?_site=vtv&vid=').s;
    
    var text2 = s(text1).splitLeft('&');
    var text3 = 'http://vhosting.vcmedia.vn/'  + text2[0];
return text3;
}

app.use(bodyParser.urlencoded({extended:false}));

app.get('/', function (req, res) {
    res.sendFile('index.html', { root: __dirname });
});


app.post('/', function (req, res) {   
    var url = req.body.vtv;

    request(url,function(err, resp, body){
        var vtv_source = cheerio.load(body);
        var link = vtv_source('.VCSortableInPreviewMode').attr('data-src');
        res.writeHead(200, { 'Content-Type': 'text/html' });
        res.write('');
        res.write('');
        res.write('<center> <br> <br> <br> <a href="' + get_link(link) + '">' + get_link(link) + '</a> </center>');
        res.end();
    });

});

var server = app.listen(port, function () {
    console.log('Node server is running..');
});
  • File index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html>
<html>
<head>
    <title>VTV Video Direct Link Generator</title>
</head>
<style> 
input {
    width: 30%;
    padding: 12px 20px;
    margin: 8px 0;
    font-size: 100%;
}
input[type=button], input[type=submit] {
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 16px 16px;
    text-decoration: none;
    margin: 4px 2px;
    cursor: pointer;
    width: 15%;
}
}
</style>

<body>
    <br>
    <br>
    <br>
    <center>
    <h1>Paste your VTV Video url here</h1>
    <form method = "post">
    <input type="text" name="vtv" placeholder="http://vtv.vn/video/cong-nghe-doi-song-sinh-vat-ngoai-lai-204180.htm">
    <input type="submit">
    </form>
    </center>
</body>

Lấy link tải các chương trình yêu thích trên VTV!

Giới thiệu

  • http://vtv.vn/truyen-hinh-truc-tuyen.htm là website của VTV. Với chức năng là xem tv trực tuyến ngoài ra còn cung cấp cho bạn các chương trình truyền hình đã phát sóng để các bạn tiện xem lại. Vậy làm sao để download các chương trình đã phát sóng về máy tính ?

Chuẩn bị

Thực hiện

Bước 1:
  • Gõ: http://vtv.vn/video/cong-nghe-doi-song-huy-dong-nguon-luc-dau-tu-cho-khoa-hoc-96609.htm vào trình duyệt.
  • Đợi trang load xong, bạn nhấn tổ hợp phím Ctr + U để xem mã nguồn trang.
  • Nhấn tổ hợp phím Ctr + F
  • Gõ “mp4” bạn sẽ thấy dòng sau:
    1
    src='http://vcplayer.vcmedia.vn/1.1/?_site=vtv&vid=vtv/1wspafjvpcm2t5emagq9roxedfhkdz/2015/10/11/1110-cong-nghe-doi-song-1444534152538-506e1.mp4&_videoId=96609
  • Chúng ta chỉ lấy phần:
    1
    vtv/1wspafjvpcm2t5emagq9roxedfhkdz/2015/10/11/1110-cong-nghe-doi-song-1444534152538-506e1.mp4
  • Thêm “http://vhosting.vcmedia.vn” vào trước ta được:
    1
    http://vhosting.vcmedia.vn//vtv/1wspafjvpcm2t5emagq9roxedfhkdz/2015/10/11/1110-cong-nghe-doi-song-1444534152538-506e1.mp4
  • Vậy là ta đã có được địa chỉ download của video chương trình truyền hình ưa thích rồi
Bước 2: Tải video
  • Gõ địa chỉ vào trình duyệt để tải
  • Hoặc add vào IDM, thế là xong! :)

    Lưu ý

  • Tất các link khác tương tự như ví dụ trên đều làm tương tự

Tạo một blog đơn giản với Pelican trên Windows

Giới thiệu

Pelican là một “static site generator” , được viết bằng Python. Cũng giống như Jeklly hay Ghost, Pelican cho phép bạn tạo các bài viết bằng ngôn ngữ Markdown hoặc reStructuredText sau đó kết hợp theme để ra được 1 sites hoàn chỉnh dưới dạng các html, để up lên host một cách dễ dàng.

Tóm tắt

Bài viết được thực hiện trên Windows, so với Linux cách thực hiện tương tự
Cung cấp các bước cài đặt Pelican cơ bản nhất
Chuẩn bị
Máy tính đã cài sẵn Python 2.7.x hoặc Python 3.3+
Windows 7 hoặc cao hơn
Pelican 3.6.3

Thực hiện

Bước 1: Thiết lập môi trường
Cài đặt Python như bình thường
Cài Pelican qua pip bằng cách mở CMD của Windows và nhập:
pip install pelican
Cài đặt Markdown:
pip install pelican markdown
Bước 2: Tạo một blog
Tạo một thư mục C:\blog (Bạn có thể tùy ý)
Mở CMD nhập
cd C:\blog
pelican-quickstart
Thiết lập cấu hình cơ bản sau:
- Where do you want to create your new web site? (Thư mục để chứa file blog):
    Nhập C:\blog ( thư mục bạn đã tạo từ trước)
- What will be the title of this web site (Tiêu đề blog)
    Nhập tùy ý
- Who will be the author of this web site ?
    Tên người viết
- What will be the default language of this web site?
    Ngôn ngữ cho blog nhập en
- Do you want to specify a URL prefix? e.g., http://example.com?
    Nhập n
- Do you want to enable article pagination? (Hiển thị số trang trên blog nếu bài viết không đủ hiện thị trong một trang)
    Nhập tùy ý y hoặc n
- How many articles per page do you want?
    Số lượng bài viết hiển thị trong 1 trang
- What is your time zone?
    Múi giờ để hiện thị thông tin ngày viết. Nhập Asia/Bangkok
- Do you want to generate a Fabfile/Makefile to automate generation and publishing?
    Nhập n
- Do you want an auto-reload & simpleHTTP script to assist with theme and site development?
    Nhập n
Done. Your new project is available at C:\blog. 
Bạn đã thiết lập xong cấu hình cơ bản
Mở CMD và nhập:
cd C:\blog
pelican content -s pelicanconf.py
cd C:\blog\output
python -m pelican.server
Vào trình duyệt gõ http://localhost:8000 để xem trước nội dung

Kết

Bạn có thể viết bài bằng ngôn ngữ Markdown sau đó bỏ vào thư mục C:\blog\content
Sau đó build blog bằng cách nhập lệnh:
pelican content -s pelicanconf.py
Xem trước blog tại địa chỉ http://localhost:8000 bằng cách di chuyển vào thử mục output, mở CMD và nhập:
cd C:\blog\output
python -m pelican.server
Toàn bộ các file html của blog sau khi tạo ra ở C:\blog\output , bạn có thể up file này lên hosting nào đó
Vậy là chúng ta đã có một blog đơn giản rồi, ngoài ra Pelican có thể cài đặt theme và sử sử dụng trên Github Hosting, mình sẽ hướng dẫn các bạn ở bài viết sau.

Swiftype - Công cụ tìm kiếm tùy chỉnh cho Website

Swiftype là gì ?

Cũng giống như Custom Search của Google, Swiftype là công cụ tìm kiếm tùy chỉnh cho bất kì Website nào bằng cách chèn mã vào website của bạn. Swiftype sẽ thêm một nút bấm hoặc chèn vào một search box có sẵn để tìm kiếm nội dung có trong website.Swiftype cung cấp các chức năng tìm kiếm tùy theo gói mà bạn trả phí trong đó có gói miễn phíBlog mình cũng sử dụng Swiftype, bạn có thể thấy button “Search this site”

Cài đặt Swiftype

Đăng ký

Đăng ký tại đây: https://swiftype.com/users/sign_upBạn sẽ được dùng thử 30 ngày sau đó nâng cấp lên bản trả phí hoặc sử dụng gói miễn phí nhưng hạn chế tính năng

Tạo tìm kiếm cho webiste

Vào đây: https://swiftype.com/precrawls/newNhập domain của website bạn muốn tìm kiếm, nhập tên công cụ tìm kiếmSau đó chọn Complete SetupKéo xuống chọn Install SearchCopy đoạn mã vào site mà bạn cần tìm kiếm (index.html)Chọn CHANGE CONFIGURATION để tùy chỉnh về màu sắc, cách hiển thị hoặc lấy code để chèn vào search box có sẵn trong website bạn.

Quick Sort

Thuật toán quicksort, với cách chọn chốt là phần tử ở giữa của dãy. Hãy thay pivot=data[left] nếu như bạn chọn phần tử đầu tiên làm chốt và pivot=data[right] nếu bạn chọn phần tử cuối cùng làm chốt.

def quicksort(data,left,right):
pivot=data[int((left+right)/2)]
i=left
j=right
while i<=j:
while data[i]<pivot:
i+=1
while data[j]>pivot:
j-=1
if i<=j:
temp=data[i]
data[i]=data[j]
data[j]=temp
i+=1
j-=1 if left<j:
quicksort(data,left,j)
if i<right:
quicksort(data,i,right)
return data
danhsach = [55,88,33,65,88,11,3,9,0,55,4,3,7,8,3]
ketqua = quicksort(danhsach,0,len(danhsach)-1)
print(ketqua)

Vài thứ về SQLi

SQL Injection

SQL Injection ( SQLi ) được xem là một trong số 10 lỗ hổng ứng dụng web hàng đầu của năm 2007 và năm 2010 theo đánh giá của Open Web Application Security Project.
Trên thế giới có hàng triệu website sử dụng cơ sở dữ liệu SQL (MySQL) trong đó có các website của chính phủ, các cơ quan tổ chức, ngân hàng, …
Mức độ ảnh hưởng của lỗ hổng này khiến hàng triệu thông tin cá nhân bao gồm thẻ tín dụng, email, password bị các hacker khai thác.
Trong bài viết này chỉ khai thác một số thông tin và cách tấn công cơ bản nhất của kĩ thuật tấn công SQLi, không đi sâu vào ngôn ngữ SQL và cách phòng chống SQLI
Bài viết đứng dưới góc độ của một người khai thác lỗ hổng này, bao gồm các bước làm sao để tìm ra website lỗi, khai thác website đó, lấy thông tin, upshell , … ( trình bày cụ thể trong video )


LÀM THẾ NÀO ĐỂ KHAI THÁC LỖ HỔNG SQLi ?

SQLi tồn tại trong nhiều hệ thống website sử dụng các ngôn ngữ ứng dụng web phổ biến như asp.net, php, …
Bằng cách đưa những câu lệnh SQL vào phần url của website, hacker có thể lấy các thông tin của website đó như mật khẩu, thẻ tín dụng,…
Để khai thác lỗ hổng này, hacker có thể sử dụng tay không mà không cần bất cứ công cụ nào ngoại trừ một trình duyệt web để truy cập website đó.
CÁCH TÌM CÁC TRANG WEB DÍNH LỖI SQLi
Google Dork ( Google Hacking ): Google là tổ hợp các keyword được mix lại với nhau, kèm theo một số thông tin từ người tìm kiếm, tổ hợp các keyword này sẽ cho ra một kết quả cụ thể và chi tiết hơn theo ý muốn của người tìm kiếm. Giả sử bạn muốn mua điện thoại từ những tên miền có đuôi .com. Bạn có thể tìm kiếm từ khóa sau: intext:”điện thoại”+site:com
Trong đó: intext:”thông tin cần tìm” sẽ trả về kết quả những địa chỉ website có phần text trong website là “điện thoại” ; site:com tìm kiếm những website có đuôi tên miền là .com
dork - Simple Sqli Dork Scanner: Công cụ tìm kiếm các website dính lỗi SQLi bằng cách tự động thêm các kí tự vào url website để kiểm tra lỗi thay vì phải nhập thủ công. Các website dính lỗi SQLi khi thêm ‘ đằng sau website thường sẽ thông báo lỗi dạng:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /hj/var/www/artists.php on line 62. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1

TỔNG KẾT

Các hacker thường mất thời gian ở việc tìm các website có lỗi SQLi. Việc này đòi hỏi khá nhiều thời gian trong việc kết hợp các google dork với nhau, làm sao để tìm được website có những thông tin quan trọng như thẻ tín dụng, email password và tài khoản ngân hàng,…

Hiện nay có rất nhiều tools hỗ trợ hack website dính lỗi SQLi một cách tự động mà không cần phải query bằng tay, ngay cả việc dùng tools tìm website lỗi tự động như ở trên. Chính vì thế, việc hack một website dính lỗi SQLi rất dễ dàng cũng có thể là rất khó khăn, tùy thuộc vào độ bảo mật của website đó.
Các hacker có thể up shell qua SQLi và chiếm toàn bộ quyền điền khiển của website sau đó hacker có thể sửa code thành những trang web lừa đảo, giả mạo, ….
Chi tiết và các câu lệnh truy vấn SQL được trình bày trong video. Công cụ được đính kèm trong file zip kèm theo.

Step by Step on code!

Trong quá trình học python, mình cũng như nhiều bạn khác khi mới tập code, đều muốn hiểu mỗi đoạn code có chức năng gì và khi run thì nó sẽ hiển thị kết quả như thế nào ra output. Mình kiếm được 1 site khá hay là https://pythontutor.com

Trang này có chức năng là diễn giải từng đoạn code của bạn, thực hiện những chức năng gì và kết quả như thế nào! Rất hữu ích cho những bạn mới làm quen với lập trình và học thuật toán.

Vào trang https://pythontutor.com và click “Start writing and visualizing code now!” nhập code của bạn.Trang có hỗ trợ 5 ngôn ngữ đó là java, javascript , python, typescript và ruby

Sau khi nhập xong code chọn Visualize Execution, click vào forward hoặc last để thực hiện cho từng dòng code.