Dockerized (SQLiv) massive SQL injection

SQLiv
Massive SQL injection scanner

FROM alpine:latest
MAINTAINER M
LABEL version="latest"

RUN apk add --no-cache python py-pip openssl git && pip install --upgrade pip && \
rm -rf /var/cache/apk/* && \
mkdir -p /opt && cd /opt && git clone https://github.com/Hadesy2k/sqlivulscan.git && \
cd /opt/sqlivulscan && \
chmod 755 /opt/sqlivulscan/setup.py && \
python2 setup.py -i

RUN rm -rf /opt && chmod 755 /usr/share/sqliv/sqliv.py

WORKDIR /usr/share/sqliv

ENTRYPOINT ["python", "sqliv.py"]
CMD ["--help"]

ป.ล.

  • ไว้ใช้สำหรับหาข้อผิดพลาดเพื่อป้องกัน ไม่แนะนำให้ใช้มีดแทงตัวเอง นะจ๊ะ นะจ๊ะ
  • อยู่ในแลปช่วงหัดเขียน Dockerfile
  • ข้อมูลเพิ่มเติมที่ https://en.kali.tools/all/?tool=1334
  • build เอาหล่ะกันนะจ๊ะ นะจ๊ะ

 

Automatically backup MySQL database to Google Drive

ประเด็นหลัก ๆ ของบล็อกนี้ก็เรื่องของการสำรองฐานข้อมูลนั่นแหล่ะ ต่างกันนิดหน่อยกับคำว่าตัวสำรอง เราสำรองเพราะเห็นว่าสิ่งนั้นสำคัญแต่ตัวสำรองคือยังไม่สำคัญนะให้รอ ก็ได้แค่นั้นแค่ตัวสำรอง

เดี๋ยวลองไล่ลำดับ ขั้นตอนในกระบวนการนี้ด้วยกัน

  1. เริ่มสำรองข้อมูล ในที่นี้คือฐานข้อมูลของ MySQL ด้วย Tool มาตรฐานคือ mysqldump (ส่วนเรื่องพารามิเตอร์ในคำสั่ง อะไรยังไง จะเอาอะไร ไม่เอาอะไร อ่านต่อได้ที่นี่)
  2. บีบอัดไฟล์ให้ขนาดเล็กลง
  3. เก็บไฟล์ไว้ที่เครื่องโลคอลนิดหน่อยอีก 30 วันค่อยมาลบหล่ะกัน (ทั้งนี้ทั้งนั้นก็ขึ้นกับความต้องการด้วยนะว่าเหมาะสมแค่ไหน)
  4. ทำการอัพโหลดข้อมูลที่สำรองได้ขึ้น Google Drive ผ่าน Google Drive CLI Client ตัวนึงที่ชื่อว่า gdrive (จุดประสงค์หลักคือเพื่อให้มีแหล่งเก็บอื่นเพิ่ม) ก่อนการใช้งานจำเป็นต้องอนุญาตให้ gdrive สามารถเข้าถึง Google Drive ของเราได้ก่อน
    1. อนุญาตสิจ๊ะ
    2. คัดลอก Token ที่ได้ เพื่อมาใช้ในโปรแกรม
  5. ทั้งหมดทั้งมวลให้ทำงานอัตโนมัติ โดยการใช้ crontab (สงสัยวิธีใช้งานก็ตามอ่านกันที่นี่นะ #เหมือนจะขี้เกียจ #55555)

โดยขั้นตอนข้างต้นเราเขียนเชลล์สคริปท์สั้น ๆ สำหรับทำงานแบบรูทีนตามนี้

ผลลัพธ์ที่ได้ก็ตามนี้

ป.ล. 1
การสำรองข้อมูลเป็นเรื่องที่สำคัญพอ ๆ กับการทดสอบไฟล์ที่สำรองได้นั้นสามารถใช้งานได้หรือไม่

ป.ล 2
gdrive – gdrive is a command line utility for interacting with Google Drive.
pv – monitor the progress of data through a pipe.

 

Smart Card Reader เสียรึเปล่าเนี่ย ?

Smart Card Reader เสียรึเปล่าเนี่ย ?

คำถามแรกเลยเวลาที่เปิดใช้งานโปรแกรมที่จำเป็นต้องติดต่อกับ Smart Card (สำหรับหน่วยงานราชการเกี่ยวกับเงิน ๆ ทอง ๆ นี่หลายโปรแกรมกันเลยทีเดียวเชียว) แล้วผลปรากฏว่า นิ่ง นิ่ง โปรแกรมไม่อ่านการ์ด/บัตร แล้วก็จะเกิดคำถามต่อ ๆ มา

  • Driver เครื่องอ่านติดตั้งรึยัง ติดตั้งแล้วใช้ได้ไหม
  • โปรแกรมต้องการคอมโพเนนท์/ไลบรารี่อะไรเพิ่มเติมอีกไหม
  • การ์ด/บัตร ยังอ่านได้ไหม มันเลือนไปอ่านไม่ได้เหมือนหัวใจใครบางคนรึเปล่า
  • แล้วเครื่องนี่ยังใช้ได้ไหม (วะ) เนี่ยยยยย

ปกติเราก็มักจะจำกัดขอบเขตของปัญหาใช่ไหม ถ้าเครื่อง Smart Card Reader เจ๊งจริงก็จะได้รู้ไง โดยฝั่ง Linux ก็สามารถใช้ pcsc_scan ตรวจสอบ ผลที่ได้ก็จะประมาณนี้ถ้าทุกอย่างโอเค

ในฝั่ง Windows เองมักใช้โปรแกรมที่ติดมากับ Smart Card Reader ซึ่งปกติก็มักหายไปกับแผ่น Driver เรียบร้อยแล้วหรือใครเพียรพยายามเก็บไว้ก็ดีไป ส่วนเราจะอิ๊อ๊ะอยู่ใย ก็ทำเองเลย โดยความต้องการพื้นฐานสำหรับรันโปรแกรมนี้ คือ

  • .NET Framework 2.0 ขึ้นไป
  • Smart Card Reader
  • การ์ด/บัตร ประชาชนคนไทย 😛

โปรแกรมชื่อ Reader Checker สามารถตรวจสอบว่าเครื่องอ่านหรือบัตรใช้งานได้จริงหรือไม่ วิธีง่าย ๆ ก็ให้โปรแกรมอ่านการ์ด/บัตรนั่นแหล่ะ กรณีที่มีการติดตั้งเครื่องอ่านสมาร์ทการ์ดมากกว่าหนึ่งเครื่องก็สามารถเลือกได้จากลิสต์ ดังรูป

กรณีพบความผิดพลาดไม่สามารถอ่านบัตรได้หรือกรณีอื่นก็สามารถตรวจสอบได้จากข้อความแจ้งเตือนจากโปรแกรม ถ้าทุกอย่างโอเค โปรแกรมจะทำการอ่านข้อมูลในการ์ด/บัตรออกมา แบบนี้

ป.ล.

  • โปรแกรมสามารถส่งออก/Export รูปที่อ่านได้ ถ้าต้องการ
  • ไลบรารี่ที่เกี่ยวข้อง กรณีต้องการพัฒนาโปรแกรมที่เกี่ยวกับ บัตรประชาชนคนไทยก็ ตามไปที่ GitHub ของคุณ Chakphanu Komasathit หรือในกลุ่มของ HOSXP
  • Specification ของ PC/SC
  • Windows PC/SC 1.0 (Smart Card)
  • สามารถสนับสนุนค่ากาแฟเราได้นะ Bitcoin Wallet Address :
    3DchASXQrisoqmJfxU6uRsbC5NV3Wsspyb

 

 

 

HDC & Smart Card On Ubuntu

จากที่ระบบ HDC ของกระทรวงสาธารณสุขปรับปรุงจนถึงเวอร์ชั่น 4.0 และก็มีการปรับปรุงเรื่องการตรวจสอบสิทธิ์การเข้าถึงข้อมูลด้วย Smart Card ซึ่งมันก็เป็นเรื่องที่น่ายินดีเลย (เราเองก็เพิ่งได้อบรมเชิงปฏิบัติการจากจังหวัดไปเมื่อวันนี้ สด ๆ ร้อน ๆ)

ด้วยความที่เครื่องทำงานหลัก ๆ อยู่บน Ubuntu งั้นเราก็มาลองใช้ Smart Card ตรวจสอบเพื่อเข้าระบบ HDC ผ่าน Ubuntu กัน (สำหรับดิสโทรอื่นก็คงไม่ต่างกันมากนัก) และ Smart Card Agent ก็ถูกพัฒนาขึ้นโดยใช้ Java เพราะฉะนั้นก็การันตีในระดับนึงว่าแพลตฟอร์มอื่นก็รันได้เช่นกัน

  1. เดิม ๆ เครื่องไม่รู้จัก Smart Card รัน Agent จะขึ้นไดอะล็อกแบบนี้ ไม่ต้องตกใจ มันแจ้งเตือนถูกแล้ว
  2. เพราะฉะนั้นก็ทำให้เครื่องเรารู้จัก Smart Card ซะ มีแพคเกจที่จำเป็นสำหรับติดต่อ Smart Card ก็ติดตั้งได้เลยตามนี้
    sudo apt install pcscd pcsc-tools
  3. ตรวจสอบอีกทีว่าติดต่อ Smart Card ได้แล้ว ด้วย pcsc_scan


    เจอข้อความตามภาพก็เป็นอันว่าเครื่องรู้จัก Smart Card Reader และสามารถอ่านบัตรประชาชนชาวไทยได้เรียบร้อยแล้ว

  4. ขั้นตอนต่อไปก็รัน Smart Card Agent ได้เลย (ข้ามเรื่องติดตั้ง JRE ไปเลยนะ ถ้าไม่มีก็ติดตั้งซะ)
    java -Dsun.security.smartcardio.library=/lib/x86_64-linux-gnu/libpcsclite.so.1 -jar javadaemon.jar 8080

    **มีเรื่องที่ต้องตรวจสอบ 2 เรื่องคือ
    – Port 8080 ไม่ควรถูกใช้ถ้าใช้ก็ปิด Service ที่ใช้ชั่วคราว
    – เพื่อให้ไลบรารี่ smartcardio ของ java ทำงานได้ ก็ใช้คำสั่งตามข้างบน อ้างอิง

  5. เปิดหน้า Login ของ HDC ก็เป็นอันสามารถเข้าใช้งานได้ เคลียร์ !!!

Watermark images with file name

เช้าวันนี้ (2 พฤศจิกายน 2559) มาพร้อมกับงานด่วน
– Watermark ไฟล์รูปด้วยชื่อไฟล์ (ต้นฉบับมาแบบนี้ -*-)
– ไฟล์รูปมีคร่าว ๆ ก็เกือบ 100 รูป ความขี้เกียจเข้าครอบงำโดยพลัน
selection_030

selection_031

#!/bin/bash
#
# NAME:		WatermarkFilename	
# AUTHOR:	MF
# A script to add a watermark and overwrite all images in a directory.


savedir=".originals"
mkdir -p $savedir

for image in *png *jpg *jpeg *gif
do
	if [ -s $image ] ; then   # non-zero file size

		width=$(identify -format %w $image)
		filename=$(basename "$image")
		fname="${filename%.*}"
		ext="${filename##*.}"
		fullpath="$(dirname $(readlink -f "${image}"))/${image##*/}"

		convert -background '#cccccc' \
		-fill white -gravity center \
		-font loma -pointsize 30 -size ${width}x60 caption:$fname \
		$image +swap -gravity south -composite new-$image
		mv $image $savedir
		mv new-$image $image
		echo "Watermarked $image successfully"		
	fi
done

ป.ล.
– เสียเวลาไปกับการตรวจสอบข้อมูลให้ตรงกับชื่อไฟล์ซะมากกว่า
– ไฟล์ตัวอย่างจาก https://unsplash.com/
– ใช้แพคเกจ imagemagick

Dirty Lab : Import many delimited files into MySQL

ดูโค๊ดเอาหล่ะกันเน๊อะ มีความขี้เกียจตั้งแต่เห็นจำนวนไฟล์ละ (คือแบบเยอะมากกกกกกก) แต่จำเป็นต้องใช้ก็เลยเกิดแลปแบบด่วน ๆ
– ใช้โครงสร้างของ HDC
– ไฟล์ที่นำเข้าอยู่ในรูปแบบของโครงสร้างมาตรฐานข้อมูลด้านสุขภาพ กระทรวงสาธารณสุข (43 แฟ้ม)
– ปล้ำ Servlet ของ HDC โดยไม่ติดตั้งระบบนี่ดูยาก ๆ อ่ะ รอปรึกษา Phoubon Ict
– อันนี้ช่วงรอไฟล์นำเข้า

#!/bin/sh
#Import delimited file to database;

IMPORTEDFOLDER="imported"

fileCount=0
fileName=""
filePath=""

mkdir -p "../${IMPORTEDFOLDER}"

for zip in *.zip; do
    zip_filename="${zip%%.*}"
    unzip "${zip}" -d "${zip_filename}"
    mv -f "${zip}" "../${IMPORTEDFOLDER}"
    
    for file in $(find ./ -name '*.txt' -or -name '*.TXT'); do
        fileName=${file##*/}
        fileName=${fileName%.txt}
        filePath="$(dirname $(readlink -f "${file}"))/${file##*/}"
        
        #TODO: Extend to GNU Parallel
        sh importdelimited.sh "${filePath}" "${fileName}" 
        
        fileCount=$((fileCount+1))
    done
    
    #rm -rf "${zip_filename}"
    
done

echo "${fileCount} files completed."

สคริปสำหรับนำเข้าฐานข้อมูลของ MySQL

#!/bin/sh
#Import delimited file to database;
#Usage : sh importdelimited.sh {Source} {Target}

LOGFILE="importlog.log"
DB="hdc"
USERDB="a1a1a1"
PASSDB="b1b1b1"
SQL=""

SQL="SET SESSION sql_mode=''; LOAD DATA LOCAL INFILE '$1' REPLACE INTO TABLE $2 FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;"
echo "$(date -u) $2:${SQL}" >> "../${LOGFILE}" 2>&1
mysql -u${USERDB} -p${PASSDB} ${DB} -e "${SQL}"
rm -f $1

ส่วนใครจะปรับโค๊ดให้ดูเมพขึ้นก็ตามสบายนะครับ ถ้าให้ดีก็ดิสคัสกันต่อก็ได้ เรานูปเชลสคริปท์ อย่างอื่นก็นูป (ดัก)

Flat-Plat-Blue-Dark GTK 3.20 Theme/Style

A Material Design-like flat theme for GTK3, GTK2, and GNOME Shell.

Flatplatblue-dark-Mockup-Trans

  • This theme is currently tested on Ubuntu 16.04
  • GTK theme and Shell theme based on Flat-Plat-Blue theme

Installation

  1. Download a archive.
  2. Extract it to the themes directory.
    • For system-wide installation to /usr/share/themes
    • For user-specific installation to ~/.themes
  3. Use gnome-tweak-tool to change the theme.

GDM (Lock/Login Screen)

  1. Backup an existing .gresource file. (Skip this step when you just update it.)

    sudo cp /usr/share/gnome-shell/gnome-shell-theme.gresource /usr/share/gnome-shell/gnome-shell-theme.gresource.bk~
  2. Replace with the new one.
    • If you put this theme in /usr/share/themes:
      sudo cp /usr/share/themes/Flat-Plat-Blue-Dark/gnome-shell/gnome-shell-theme.gresource /usr/share/gnome-shell
    • If you put this theme in ~/.themes:
      sudo cp ~/.themes/Flat-Plat-Blue-Dark/gnome-shell/gnome-shell-theme.gresource /usr/share/gnome-shell
      
  3. Restart GNOME Shell (press Alt+F2, then type r).

Screenshots

Change Log

  • 2016/06/07/
    – Initial release
  • 2016/06/12
    – Fix switch and top bar
    – Improved ripple effect

P.S./ป.ล.
ช่วงนี้ดาร์ก ๆ ก็ใช้ธีมดาร์ก ๆ หล่ะกัน ^_^

Emoji Keyboard

This is the On-Screen keyboard application to input Smilies, Emoticons & Symbols in everywhere such as email, twitter, facebook

Features

  • Add Native Smilies, Emoticons & Symbols to your content, never mind in which App you are
  • The symbols in the App are compatible across all popular apps.
  • Fevorite and previously smilies emoticon & Symbols
  • Hide application to tray area
  • Support Hotkey : Default hot key ‘Alt + A’ to Show/Hide App
  • Example
    ????☺️?????????????????????????????????????
    ??????????????????????????????????????????
    ???????✨?????????????????✊✌️?✋???????☝️???????
    ???????????????????????????????????????????
    ?❤️????????????????☀☁☂☃☄★☆☇☈☉☊☋☌☍☎☏☐☑☒☓☔☕☖☗

System Requirement

  • .NET Framework 2.0 or above

Fork: http://emojikeyboard.codeplex.com/

Keyboard Indicator

Keyboard Indicator

Monitoring Caps Lock, Num Lock, Scroll Lock on windows platform and show you the information in your taskbar’s notification area (system tray)

System Requirements:

  • .NET Framework 2.0 or above
  • Keyboards don’t display ‘indicator’ lights

Resource:

  • Indicator-keylock
    https://launchpad.net/~tsbarnes/+archive/indicator-keylock
  • Global Mouse and Keyboard Library
    http://www.codeproject.com/KB/system/globalmousekeyboardlib.aspx

Change Log:

  • 2011/09/11 v0.1
  • 2015/05/12 v0.2

Fork:
http://keyboardindicator.codeplex.com/

Ultra Flat Yosemite GTK 3.x Theme/Style

Ultra Flat Yosemite GTK 3.x Theme/Style

UltraFlat-Mockup-Trans

 

I designed this theme get inspired by flat theme style and OSX Yosemite and I made this theme based on Ultra-Flat theme.
**This theme is currently only for Unity and tested on Ubuntu 14.10 with gtk2/xfce/mate support planned for a future release.

Installation

Just unzip the file and place it in your themes directory /usr/share/themes
Icon theme:
Ultra-Flat-Icons (1.2.6)
http://gnome-look.org/content/show.php/Ultra-Flat-Icons?content=167477

Change Log

  • 2014/12/30 v0.1
  • 2015/01/03 v0.2
    • Fix Gtkswitch
    • Fix UnityDecoration
  • 2015/02/15 v0.3
    • Fix UnityPanel/Menu Bar